为什么要异常处理,如何异常处理,如何自定义异常,运行期异常和普通异常有什么区别,异常和错误有什么区别?
异常:程序出现不正常情况后,程序将会跳出当前环境,并且抛出异常。
-
为什么要异常处理:
让程序异常代码和正常代码分开,保证程序代码更加优雅,并提高程序的健壮性
-
如何异常处理
- try…catch捕获异常
- 使用throws抛出异常
- 使用throw抛出异常
- 自定义异常类
-
如何自定义异常
用户自定义异常都应该继承Exception基类,如果希望自定义Runtime异常,则应该继承RuntimeException基类。定义异常类时通常需要提供两个构造器:一个是无参数的构造器;另一个是带一个字符串参数的构造器,这个字符串将作为该异常对象的描述信息(即异常对象的getMessage()方法的返回值)
public class AuctionException extends Exception{ public AuctionException(){ } public AuctionException(String msg){ super(msg); } }
-
运行期异常和普通异常有什么区别
- RuntimeException:运行时异常,我们必须修正代码,这些异常由于逻辑错误产生的,不会被编译检查出来,需要程序员自行捕获,像NullpointException(空指针异常),ClassCastException (类型转 换异常),IndexOutOfBoundsException(数组越界异常)
- 非RuntimeException:编译期异常,必须处理,否则程序编译无法通过,这类异常在编译时编译器会提示需要捕获,如果不进行捕获则编译错误。IOException
-
异常和错误有什么区别?
- error:程序无法处理的严重错误,一般和操作者无关,开发者和程序无法处理,JVM直接终止线程
- Exception:程序员可控,捕获处理后,程序可继续运行