日期:2014-05-19  浏览次数:20389 次

看看以下语法,能解释一下吗?
//first
try
{
}
catch(Exception)
{
}
//second
try
{
}
catch
{
}

//third
try
{
}
catch(Exception   ex)
{
}
请问以上各个语句有什么区别?
谢谢~

------解决方案--------------------
都是一样的意思 捕捉所以异常
第一个指定了异常的类型 Exception

第二个没有指定,系统默认是 Exception

第三个跟第一个一样,不过多指定了一个Exception类的实例
如果在catch中没有用到这个实例是会有一个警告的
当然这个实例也是很有用的,可以告诉你很多信息
但是对客户就没有意思了

看那个方便就用那个了

------解决方案--------------------
这三个情况还是有区别的,具体如下:

//first
try
{
}
catch(Exception)
{
}

只有发生了这里指定的异常的时候才会执行下面的语句,否则既是有异常也不会执行这里的代码,比如这里只对Exception类型的异常处理,当然这是异常基类,就是所有异常了.

//second
try
{
}
catch
{
}
这里是对所有的异常进行处理,而不是专对某一个异常处理,比第一个范围在定义上更大.
//third
try
{
}
catch(Exception ex)
{
}
这个和第一个类似,只对指定的类型异常处理,同时也要获取指定异常的信息,而第一个则不获取异常的信息,只是说处理这个异常.因为这里有一个指向指定的异常的实例对象ex