您的位置:首页 > 编程语言 > Java开发

Java异常体系

2015-08-19 20:41 483 查看

关于Java的异常类层次,在这张图上已经很清晰的显示出来。

Throwable:作为所有异常的祖先,分别有派生出Exception和Error两个子类。

Error:Error的出现表明是JVM作为一个运行环境出现了问题,导致程序抛出Error而崩溃。

Exception:程序运行本身的异常。派生出RuntimeException和IOException两大类。

RuntimeException:运行时异常,包括逻辑上的比如数组越界,空指针,类型转换错误,类找不到等等。与逻辑相关的异常,就应该从逻辑上避免,编译器不检查,也不要求一定处理。

非运行时异常:不处理,编译不通过。比如IOException和SQLException,以及用户自定义的异常。


异常的处理方式无非:

捕获:try...catch...

抛出:给上一层处理。在定义方法的时候抛异常使用throws。而在代码中主动抛异常则使用throw。以后别傻傻分不清,搞错可是要打自己屁股的。


多个异常同时发生,并且异常之间是继承关系,如何运行?

答案是:

Exception作为所有异常的祖先,如果放在其他异常的前面,会编译异常,通过不了语法检查。

否则,Exception放在最后,那么最精确匹配的异常才会执行。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: