码迷,mamicode.com
首页 > Windows程序 > 详细

c# throw和throw ex

时间:2018-09-25 10:16:27      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:new   问题   www.   调试   string   system   ima   ref   .com   

原文:c# throw和throw ex

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方法手动抛出的异常,在日常调试中,这个才是我们想要的结果,我们想要清楚的知道具体的错误代码行,以便准备无误的解决错误。

 

欢迎任何形式的转载,但请务必注明出处。

文案功底有限,码字不易,不喜勿喷,如果文章和代码有表述不当之处,还请不吝赐教。

 

c# throw和throw ex

标签:new   问题   www.   调试   string   system   ima   ref   .com   

原文地址:https://www.cnblogs.com/lonelyxmas/p/9697720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!