关于try catch语句的问题catch{throw;}这里的catch是捕获所有异常吧?“在 catch 块中可以使用 throw 语句再次引发已由 catch 语句捕获的异常”这句话是什么意思?为什么要再次引发呢?有什么用?
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 14:21:11
关于try catch语句的问题catch{throw;}这里的catch是捕获所有异常吧?“在 catch 块中可以使用 throw 语句再次引发已由 catch 语句捕获的异常”这句话是什么意思?为什么要再次引发呢?有什么用?
关于try catch语句的问题
catch
{
throw;
}
这里的catch是捕获所有异常吧?
“在 catch 块中可以使用 throw 语句再次引发已由 catch 语句捕获的异常”这句话是什么意思?为什么要再次引发呢?有什么用?
关于try catch语句的问题catch{throw;}这里的catch是捕获所有异常吧?“在 catch 块中可以使用 throw 语句再次引发已由 catch 语句捕获的异常”这句话是什么意思?为什么要再次引发呢?有什么用?
是的,是捕获所有异常.如果代码只是你写的这样,catch块里面没有其他语句,那么毫无意义,删掉你的try..catch以后程序的行为不会有任何变化.
一般来说不建议捕获所有异常,但具体情况具体分析.这样的用法可以是
catch
{
//此处做一些事情,比如记录一个错误日志.
throw;//throw的意思是将捕获的异常重新抛出,以便调用栈上其他的catch块捕获.如果没有任何代码捕获这个异常,程序将会终止,因为它不知道该如何处理这个错误,最安全的方式就是终止.
}
例如,你有类A,有一个方法Foo,显然他/她会抛出异常.
public int Foo()
{
return int.Parse("t");
}
其他方法调用了这个方法
public void Bar()
{
try
{
int i=Foo();
}
catch
{
//做一些事情
throw;
}
}
最后主函数这样写:
A a = new A();
try
{
a.Bar();
}
catch
{
//这里又捕获了Bar函数重新抛出的异常,做一些另外的事情
}
本人回答问题都是原创,绝不上网胡乱复制粘贴.有问题可以hi我