捕获的是所有的异常,如果只想捕获一个区域的异常,那就有不同的捕获异常的函数。
看什么语言了..
基本上大多数情况...Exception是所有例外类的基类..就是引发例外后最终都能被捕捉到...
假设有个NoName的名字
NoNameException 继承 Exception // 重写部分方法..
那么捕捉的时候可以
try {}
catch (NoNameException e) {
// 操作
}
catch (Exception e) {
// 假设指定例外不被捕捉到...
}
很多时候写程序并不自己实现例外..因为可能性可能比较多..再自己throw比较麻烦
Exception e参数就是记录抛出来的异常的实例,你可以用e.Message查看异常信息,也可以用e.StackTrace查看堆栈和调用情况.
一般都会带这个参数,如果你不需要了解抛出来的异常情况,只想自己去处理,可以不带参数.
比如:
try{
//数据库操作
}
catch(Exception ex){
Console.WriteLine(ex.Message);
}
一般这类操作都会带参数,因为想知道具体哪里有问题.
又比如:
try{
string userid=Session["Userid"].ToString();
return userid;
}
catch{
return "";
}
这种一般不需要Exception参数,因为知道如果跳到catch代码段里会是什么原因.
简而言之:
需要错误信息和堆栈情况,就加参数,已经知道异常原因,不需要系统帮助你判断的,就不需要参数。
Exception e 获取这个异常的详细信息,带不带全看程序需不需要把这个异常信息记录下来,不记录的话可以不需要.