C#异常处理中的问题
一个try可以有多个catch块,但是只能有一个通用catch块,否则将产生错误(其中只能有一个通用catch块是什么意思?) 也许很弱的问题 但是不知道就是不知道。。。帮下 谢谢新人上路
参考答案:您好,“通用catch块”的意思是可以捕获到所有错误的catch块,举个例子来说吧:
public void MyMothed()
{
try
{
//do something
int x=5/0;//被0除,这里出错。
}
catch(SystemException)
{
//do something here
}
catch(DivideByZeroException)
{
//这里是出现被0除错误的解决方法
}
catch(Exception)
{
//这个就是“通用catch块”
}
}
在上面这个例子方法中,最后一个“catch(Exception)”就是“通用catch块”,它负责捕获Exception类型的错误,Exception类型表示“在应用程序执行期间发生的错误。”,也就是说无论发生了什么错误,这个catch快都可以将它捕获,C#中的所有错误类型都是从这个Exception类派生出来的,C#语法硬性规定一个try..catch块中只能有一个通用catch块。
另外,这个catch(Exception)块必须放在一个try..catch结构的最后,否则将产生编译器警告,因为这个块会捕获所有的错误,所以后面的catch语句将永远不会被执行。
希望这些信息对您有所帮助。
如果需要更多信息,您可以参阅MSDN中文版: