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

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

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

  • 相关阅读:
    sort()的部分用法
    蓝桥杯 算法训练 审美课
    蓝桥杯 基础练习 查找整数
    2018年第九届蓝桥杯【C++省赛B组】【第二题:明码】
    蓝桥杯 特殊回文数
    比较两文本程序
    蓝桥杯 基础练习 十六进制转八进制
    Python | 用Pyinstaller打包发布exe应用
    SpringBoot-04-整合JDBC
    SpringBoot-03-自定义Starter
  • 原文地址:https://www.cnblogs.com/zeshao/p/9690005.html
Copyright © 2011-2022 走看看