关于try catch语句的问题

2025-12-24 22:18:37
推荐回答(3个)
回答1:

是的,是捕获所有异常。如果代码只是你写的这样,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我

回答2:

你家水龙头坏了,但你不知道
你媳妇看见说:坏了
但是她不管
接着throw:那谁谁去修

你媳妇(catch)操家,但有些事发现了只能throw给你来解决

如果你解决不了或者懒
你再catch(这管子不会玩)throw(打电话找修理工)

那修理工catch(原来是这么回事),解决问题

你媳妇然后去打水做饭,你接着百度玩

回答3:

再次实际上是一个传递。即在本catch中并不处理。而是丢给调用包含这个catch的函数的程式去处理。

异常的传递!