精华内容
下载资源
问答
  • c# throwthrow ex

    2018-09-25 08:29:00
    c# throwthrow ex 原文:c# throwthrow exc# throwthrow ex 我们在日常开发当中,经常会用到exception异常,并且我们会在exception中的catch块中throw exception,例如: static void M3() ...
    原文: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方法手动抛出的异常,在日常调试中,这个才是我们想要的结果,我们想要清楚的知道具体的错误代码行,以便准备无误的解决错误。

     

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

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

     

    posted on 2018-09-25 08:29 NET未来之路 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/lonelyxmas/p/9697720.html

    展开全文
  • C# throw詳解

    2010-05-12 09:21:59
    throw异常:C#语言throw异常处理语句, throw语句用于发出在执行期间出现反常情况(异常)信号throw语句通常和try-catch或try-finally语句起使用可以使用throw语句显式引发异常(这里引发自定义异常)创建用户自定义异常...
  • C# throw new Exception的使用

    万次阅读 热门讨论 2018-06-02 19:36:15
      在使用三层或七层架构来敲系统的时候,常常需要判断多个条件,因此可能一个方法里面需要返回不同的提示消息,这时:使用throw 和 try catch来处理。 第一步:不管在哪一层(不是U层就行,因为U层就直接用...

      在使用三层或七层架构来敲系统的时候,常常需要判断多个条件,因此可能一个方法里面需要返回不同的提示消息,这时:使用throw 和 try catch来处理。

    第一步:不管在哪一层(不是U层就行,因为U层就直接用MessageBox提示了)

    //在B层随便写个
    if(条件1成立)
    {
    	throw new Exception("条件1提示"); 
    }
    if(条件2成立)
    {
    	throw new Exception("条件2提示");
    }
    

    第二步:在U层添加如下代码

    //在U层将调用的方法,包起来  如果try的内容有throw,就会在catch里抓出来
    try
    {
    	//调用三层或七层的方法
    }
    catch (Exception ex)
    {
    	MessageBox.Show(ex.Message);
    	return;   //停止向下运行
    }
    

      throw是我们自己“扔”出的错误,它会一直往外扔,直到扔到最顶层的开始调用部分,比如,从U层调用了一个方法,经过了B层,在D层中写了个throw new Exception(“我是D层”),它就会一层层扔回,直到U层,我们需要用try catch做处理,不然它就报错了,处理的方法就是第二步的代码,将错误用提示框弹出来。
      使用心得:当执行了throw语句,它就不会继续向下执行,而是直接返回了,所以如果我们成功的运行到了该语句的下一条语句,就说明我们操作成功了,不用在添加判断,来提示是否成功。比如还是上面第一步的代码,添加一行语句:

    if(条件1成立)
    {
    	throw new Exception("条件1提示"); 
    }
    if(条件2成立)
    {
    	throw new Exception("条件2提示");
    }
    
    

    如果条件1成立了,那么就在条件1的if语句中返回了,不会执行到条件2。

    展开全文
  • c# throw的用法

    千次阅读 2010-12-16 16:50:00
    c#throw到底是干什么用的,它是捕获异常,然后弹出异常对话框吗?像MessageBox.Show一样吗?它可以和try,catch连在一起使用吗?如下例: if (e.ClickedItem == print) { i = 0; ...
    c#中throw到底是干什么用的,它是捕获异常,然后弹出异常对话框吗?像MessageBox.Show一样吗?它可以和try,catch连在一起使用吗?如下例:
    if (e.ClickedItem == print)
    {
    i = 0;
    try{
    if (((Form2)ActiveMdiChild).txtMain.Text.Length < 1)
    return;
    this.printDocument1.Print();

    }
    catch (Exception err)
    {
    throw new Exception("打印发生错误"+err.Message);
    //MessageBox.Show("打印发生错误", err.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    }
    以上代码,编译可以通过,但是运行程序出现异常的时候,没有弹出异常对话框,而是程序崩溃了,出现错误是:示处理exception
    打印发生错误未将对象引用设置到对象的实例。
    是不是代码中的throw用法错了,不能这么用,那到底应该怎么用.

    问题补充:

    额,那怎么改?
    最佳答案
    new Exception是用来人为的制造一个异常。而throw 是把这个异常抛出。 
    这样我们就可以定义自己想要的异常信息了。
    但要注意的是,抛出了异常就一定要处理,不处理的话系统就崩了。
    你这里用得不合适。



    据个例子,异常抛出可以这么用,我现在用类A中的aa方法,调用实例b中的bb方法,大小写什么的可能都不对,将就着看看吧:
    class A
    {
    private void aa()
    {
    B bb =new B();
    try//这里调用了B的bb方法,并且捕获了bb抛出的异常同时进行了处理
    {
    bb.bb();
    }
    catch(Exception e)
    {
    messagebox.show("Class B Error:"+e);//这里处理了bb的异常信息
    }
    }
    }

    class B
    {
    int i = 0;
    public void bb()
    {
    if(this.i != 0) //这里我随便做了个假设,看着意思明白就可以了
    {
    throw new Exception("电脑故障了,i不可能大于0.");
    }
    }
    }
    你这里就不要用throw了,直接用一个messagebox.show(("打印发生错误"+err.Message);就可以了。
    展开全文
  • throw; } 不仅抛出这次的异常,也抛出之前的异常。 用法示例:函数A调用函数B,A用到此throw时,B中发生的异常也会继承过来。 catch(exception e) { throw e; } 当调用异常位置的时候,仅显示...
    catch(exception e)
    {
        throw;
    }
    

     不仅抛出这次的异常,也抛出之前的异常。

    用法示例:函数A调用函数B,A用到此throw时,B中发生的异常也会继承过来。

    catch(exception e)
    {
        throw e;
    }
    

     当调用异常位置的时候,仅显示这个位置。

    在上个用法中,B中的位置不会出现。

    转载于:https://www.cnblogs.com/gaara-zhang/p/9215031.html

    展开全文
  • C#使用throwthrow ex的区别

    千次阅读 2018-04-15 11:29:33
    之前,在使用异常捕获语句try...catch...throw语句时,...我们都知道,C#中使用throwthrow ex抛出异常,但二者是有区别的。 在C#中推荐使用throw;来抛出异常;throw ex;会将到现在为止的所有信息清空,认为你ca...
  • c#: throwthrow ex的区别

    千次阅读 2017-12-21 15:59:38
    之前,在使用异常捕获语句try...catch...throw语句时,...我们都知道,C#中使用throwthrow ex抛出异常,但二者是有区别的。 在C#中推荐使用throw;来抛出异常;throw ex;会将到现在为止的所有信息清空,认为你
  • C# 使用throw;throw ex;和 throw new Exception();抛异常区别与建议 之前,在使用异常捕获语句try...catch...throw语句时,一直没太留意几种用法的区别,前几天调试程序时发展找不到异常根源,无意中了解到几种...
  • C#throw的用法_异常路径

    万次阅读 2016-06-06 10:37:36
    C#throw的用法_异常路径
  • C#throw和try catch的区别是什么?throw是不是用的比较少?什么时候需要throw
  • C#中的throw

    2016-10-06 23:07:36
    [原译]C#中的throw Throw会抛出/传递异常,通过在catch块里使用throw语句.可以改变产生的异常,比如我们可以抛出一个新的异常,throw语句有各种各样的,并且很有必要. 例子 我们首先看一下三个方法,分别叫做A,B...
  • C#中使用throwthrow ex抛出异常的区别
  • 当我们抛出一个异常时, CLR会重新设置一个异常起始点。 CLR只记录最近一次异常抛出的位置。下面代码抛出一个异常,从而导致CLR重新设置该异常的起始点: ... throw e; //CLR认为这里是异常的起始点
  • c# 关于throw的unit test 写法 在做unit test时,发现有的try,catch语句中会有throw语句,虽然观察同事的代码中对于这样的语句通常不做测试,但有时因为特殊要求或者干脆为了追求测试百分比,还是要学会如何进行...
  • C#的异常处理之Throw关键字
  • c#throw 来抛出异常

    千次阅读 2015-10-11 11:26:20
    throw 用来抛出异常,可自己编写代码,抛出所需要的异常。代码如下:[csharp] view plaincopy using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace CheckedAnd...
  • 1、C#控制台项目请自己建立. 2、你可以直接拷贝下面程序到你的控制台,以便测试 3、try-throw-cacth 往往是配对使用。catch 用来捕获throw的异常。 try { if (throwEx) { throw new Exception("Sorry! ...
  • 1、问题来源参见以下代码: public void add(int index, E element) { if(size >... throw new RuntimeException("顺序表已满,无法添加"); //return; //该句还需要吗? } .... } 2、测试...
  • C# 中的Throw

    2015-04-14 16:08:32
    无参和有参throw的区别:有参throw 会改变异常的TargetSite位置。 Y() 将异常的TargetSite位置修改到Y()方法里。 using System; class Program { static void Main() { try { X(); } catch (Exception...
  • C#中try catch中throw ex和throw方式抛出异常有何不同
  • C#throw异常处理语句

    2012-12-06 21:40:21
    throw new UserEmployeeException("error Info of use "); } catch (UserEmployeeException ey) { Console.WriteLine(ey.Message); Console.WriteLine("输出结果为:"); Console.WriteLine(ey.InnerException...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,432
精华内容 29,772
关键字:

c#throw

c# 订阅