• catch块中throw new Exception的意义。


    throw new Exception(String, Exception)

      throw new Exception(String)

      throw是明确地抛出异常

      MSDN:Exception (String, Exception) 使用指定错误信息和对作为此异常原因的内部异常的引用来初始化 Exception 类的新实例。

       在发现异常以后作一下记录异常信息然后在抛出异常,让客户知道有问题了,以便通知技术人员。因为程序异常以后就崩溃的机会很大,先记录问题下来再崩溃才行。

      捕获异常以后,再抛出一个新的异常。再抛出新异常之前,你可以对前面捕获的异常做一些操作,比如记录日志、获取异常信息然后写到新异常中

    int num = Convert.ToInt32(textBox1.Text);
    try
    {
        if (num == 0)
        {
            throw new ArgumentNullException("出现零!");
        }
        if (num == 1)
        {
            throw new Exception("出现壹!");
        }
    }
    catch (ArgumentNullException ex)
    {
        MessageBox.Show(ex.Message);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

       catch是用来处理错误,就是发生了错误时,会执行catch部分.注意:是"发生了错误时".

      但是, 在没有发生错误时, 你自己想引发错误怎么办呢? 可以使用throw语句来手工引发一个错误.

       比如上面这段程序, 你先画一个文本框,textBox1,一个按钮button1, 如果把这段代码放到button1的click事件里. 

       如果文本框中文本是0,引发一种错误,文本框文本是1时又引发另一种错误,并可采用不同的处理办法.

      我认为catch块里通常对附异常有三种办法:一种办法是,什么也不做,catch语句里只有空语句;另一种办法是,用messagebox之类的通知异常;还有一种办法是,throw 一个new的异常。

       用哪种办法取决于你希望如何处理这个异常。

       如果你想直接通知用户,用messagebox之类的就好了

       如果你想由调用这个函数的程序来处理,可以throw一个new

       如果你希望你的程序出了“这个”异常还正常运行,就像什么也没发生一样,你可以空语句。

       总之try catch是有意义和必要的,但你的程序如何catch就是你自己的想法喽。

       一般来说没有必要明确的throw出一个异常,异常应该是因为程序本身运行的问题而产生的,但是有两种情况:

       1. 测试的时候,比如说你不能真的模拟一个内存耗尽这个异常吧,那么只好明确地throw一个了。

      2. 自定义的异常需要明确的throw出来,因为满足这个条件往往是我们自己制定的规则不满足了。

  • 相关阅读:
    tuple 元组及字典dict
    day 49 css属性补充浮动 属性定位 抽屉作业
    day48 选择器(基本、层级 、属性) css属性
    day47 列表 表单 css初识
    day 46 http和html
    day 45索引
    day 44 练习题讲解 多表查询
    day 40 多表查询 子查询
    day39 表之间的关联关系、 补充 表操作总结 where 、group by、
    day38 数据类型 约束条件
  • 原文地址:https://www.cnblogs.com/dudu837/p/1494013.html
Copyright © 2020-2023  润新知