电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

catch块中throw new Exception的意义


发布日期:2018/4/30
 

thrownew Exception(StringException)

throw new Exception(String)

throw是明确地抛出异常

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

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

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

intnum=ConvertToInt(textBoxText);

try

{

if(num==)

{

thrownewArgumentNullException(出现零!);

}

if(num==)

{

thrownewException(出现壹!);

}

}

catch(ArgumentNullExceptionex)

{

MessageBoxShow(exMessage);

}

catch(Exceptionex)

{

MessageBoxShow(exMessage);

}

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

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

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

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

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

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

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

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

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

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

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

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

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

上一篇:开源MVC框架 XX Framework 1.1 发布

下一篇:浅析概括WCF自托管宿主