银杏学院,硕果累累的近义词,泗水在线
c# throw和throw ex
我们在日常开发当中,经常会用到exception异常,并且我们会在exception中的catch块中throw exception,例如:
static void m3()
{
try
{
//你的业务代码
}
catch (exception ex)
{
throw ex;
}
}
但是大家是否清楚在catch块中 throw和throw ex的区别呢?在一次电话面试中,面试官就问到这个问题了,当时没有答上来,
事后经过测试才知道两者的区别,其实只要自己测试一下,就知道两者之间的区别了,测试代码:
1. throw ex 测试
using system;
namespace muzizmh.test
{
class program
{
static void main(string[] args)
{
m2();
}
static void m1()
{
throw new exception("m1 exception");
}
static void m2()
{
try
{
m1();
}
catch (exception ex)
{
throw ex;
}
}
}
}
在main函数中明显会抛出异常,但是请注意异常信息:
错误信息行号分别为:24和8
2. throw 测试
错误信息行号分别为:13、24和8
总结:相比上面的测试结果,测试2的结果多出了一个行号,也就是m1方法手动抛出的异常,在日常调试中,这个才是我们想要的结果,我们想要清楚的知道具体的错误代码行,以便准备无误的解决错误。
欢迎任何形式的转载,但请务必注明出处。
文案功底有限,码字不易,不喜勿喷,如果文章和代码有表述不当之处,还请不吝赐教。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论