是的,是捕获所有异常。如果代码只是你写的这样,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我
你家水龙头坏了,但你不知道
你媳妇看见说:坏了
但是她不管
接着throw:那谁谁去修
你媳妇(catch)操家,但有些事发现了只能throw给你来解决
如果你解决不了或者懒
你再catch(这管子不会玩)throw(打电话找修理工)
那修理工catch(原来是这么回事),解决问题
你媳妇然后去打水做饭,你接着百度玩
再次实际上是一个传递。即在本catch中并不处理。而是丢给调用包含这个catch的函数的程式去处理。
异常的传递!