在catch块中throw new exception(string,exception)有什么意义? 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 throw new exception(string,exception)throw是明确地抛出异常MSDN:Exception (String, Exception) 使用指定错误信息和对作为此异常原因的内部异常的引用来初始化 Exception 类的新实例。 明确地抛出异常有啥用?能更细一点讲解么?我觉得已经在catch块应该可以解决异常了,但是又抛出去,想不明白 再问,如果我在catch块记录一下信息,然后用messagebox之类的通知异常,还有必要再抛出异常么?分给的少了,抱歉,希望解答一下 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就是你自己的想法喽。 int num = Convert.ToInt32(textBox1.Text);try{ if (num == 0) { throw new ArgumentNullException("出现零!"); // 引发第一种错误,至于错误类型,C#有许多你查一下。 } if (num == 1) { throw new Exception("出现壹!"); // 引发第二种错误。 }}catch (ArgumentNullException ex) // 处理第一种错误,你看ArgumentNullException是不是和上面批配?{ MessageBox.Show(ex.Message);}catch (Exception ex) // 处理第二种错误。{ MessageBox.Show(ex.Message);} 一般来说没有必要明确的throw出一个异常,异常应该是因为程序本身运行的问题而产生的,但是有两种情况1. 测试的时候,比如说你不能真的模拟一个内存耗尽这个异常吧,那么只好明确地throw一个了2. 自定义的异常需要明确的throw出来,因为满足这个条件往往是我们自己制定的规则不满足了 C#获取磁盘IO速率 求教。将Excel文件导入DataTable中,然后绑定到GridView中。 请问,TextBox的鼠标右键点击 提取邮件信息的正则表达式问题 关基于MapXtreme的专题分析图的实现 xtragrid的列计算问题 用C#怎高分求救:二进制文档和word转换的问题! TrackBar怎么更换滑块? 高分求助,有关对Access引用对象的操作 数据实时显示——交通车辆监控 求windos文本编辑器里加一段“查找”的选项代码 关于streamReader的几个问题 希望高手帮忙回答一下
Exception (String, Exception) 使用指定错误信息和对作为此异常原因的内部异常的引用来初始化 Exception 类的新实例。
{
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语句里只有空语句
另一种办法是,用messagebox之类的通知异常
还有一种办法是,throw 一个new的异常。
用哪种办法取决于你希望如何处理这个异常。
如果你想直接通知用户,用messagebox之类的就好了
如果你想由调用这个函数的程序来处理,可以throw一个new
如果你希望你的程序出了“这个”异常还正常运行,就像什么也没发生一样,你可以空语句。
总之try catch是有意义和必要的,但你的程序如何catch就是你自己的想法喽。
{
if (num == 0)
{
throw new ArgumentNullException("出现零!"); // 引发第一种错误,至于错误类型,C#有许多你查一下。
}
if (num == 1)
{
throw new Exception("出现壹!"); // 引发第二种错误。
}
}
catch (ArgumentNullException ex) // 处理第一种错误,你看ArgumentNullException是不是和上面批配?
{
MessageBox.Show(ex.Message);
}
catch (Exception ex) // 处理第二种错误。
{
MessageBox.Show(ex.Message);
}
2. 自定义的异常需要明确的throw出来,因为满足这个条件往往是我们自己制定的规则不满足了