标题:
深入【Java】底层细节知识点(9)异常和错误
[打印本页]
作者:
look_w
时间:
2018-12-15 13:22
标题:
深入【Java】底层细节知识点(9)异常和错误
九
、
异
常
和
错
误
异常
异常即exception
异常:可以预知、可以通过修改程序来弥补”错误”,可避免的
错误
错误:error
错误:无法预知的,系统级别的,程序员修改程序是无法修复的;例如:系统宕机,JVM挂掉了
粉红色的是编译时异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理,命名为 Checked Exception 是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守.
绿色的异常是运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理,比如 空指针,被0除…
而声明为Error的,则属于严重错误,如系统崩溃、虚拟机错误、动态链接失败等,这些错误无法恢复或者不可能捕捉,将导致应用程序中断,Error不需要捕捉。
常见的异常总结:
1、java.lang.NullPointerException(空指针异常)
调用了未经初始化的对象或者是不存在的对象
2、java.lang.ClassNotFoundException
指定的类不存在
3、java.lang.NumberFormatException
字符串转换为数字异常
4、java.lang.IndexOutOfBoundsException
数组下标越界异常
5、 java.lang.ArithmeticException
数学运算异常
6、 java.lang.ClassCastException
数据类型转换异常
7、java.lang.FileNotFoundException
文件未找到异常
8、java.lang.IllegalArgumentException
方法的参数错误
9、 java.lang.NoSuchMethodException
方法不存在异常
10、java.lang.NoClassDefFoundException
未找到类定义错误
违背安全原则异常:SecturityException
操作数据库异常:SQLException
输入输出异常:IOException
通信异常:SocketException
异常的处理
功能抛出几个异常,功能调用如果进行try处理,需要与之对应的catch处理代码块,这样的处理有针对性,抛几个就处理几个。
特殊情况:try对应多个catch时,如果有父类的catch语句块,一定要放在下面。
throws 和throw
throws 方法声明时使用
,表示该方法可能产生的异常,抛出,谁调用谁捕获处理,throws用在函数上。
throw方法体中使用
,表示抛出一个具体的异常对象,谁调用谁捕获处理,throw用在函数内。
catch中存在return,此时finally中是否被执行?执行。但finally外边不执行。(其实就不能有语句)
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0