try {
一些语句
}
catch {
}
catch{
} //很多catch
catch(Exception ex) {
一些语句
throw ex; //重新抛出异常;
}
catch {
}
catch{
} //很多catch下面怎么执行? 是返回到第一个catch开始匹配, 还是从接下来的语句中寻找匹配?
顺便看看下面的帖子:
http://topic.csdn.net/u/20100419/20/637b7b00-bd60-4536-980a-3d5b8032b299.html
调试欢乐多
一些语句
throw ex; //重新抛出异常;
}
首先、Exception可以捕获所有的异常,所以catch(Exception ex)都是放在最后一个catch块,否则会得到其后的catch块永远不会执行的编译错误
其次、多重catch如同if-else只会匹配一个,进入一个catch块后不会再去看后面的catch块。重抛异常是不在当前代码中处理,而是交给这段代码的调用者去处理。一般是在多层结构中将异常信息抛给上一层去处理。如MVC中控制层将异常交给视图层去做相应处理以展示给用户