异常(exception)
目录结构
- Throwable:所有异常的父类
- Error:系统级错误
- Exception:可修复的错误
- 其他Exception
- RuntimeException:非检查异常,编译器不会检查这种异常是否添加了处理代码,不强制处理
- NullPointerException
- ArrayIndexOutOfBoundsException
- ArithmeticException
- NumberFormatException
- ClassNotFoundException
- …
处理异常方法
- 捕获异常
try{}catch(异常类型 e){e.printStackTrace / throw new RuntimeException(e)}finally{}
- 异常类型:(通常用Exception类,也可以是具体的某一个异常类)
- e:(变量名称)
- e.printStackTrace:(打印异常信息)
- throw new RuntimeException(e):当异常无法抛出时,而你又想要抛出,则需要包装成能够抛出的类型,进行抛出
- finally:不管是否有异常,都会执行
- 抛出异常:在方法或类上添加throws 异常类
自定义异常
- 定义:现有的异常类型,不能表示多有的业务中的错误情况,则需要自定义需要的异常类型,来表示具体业务中的错误
- 要求:
- 一般选择Exception或者是RuntimeException作为父类
- Exception:需要自定义抛出管道,因为Exception没有抛出管道
- RuntimeException:不需要定义抛出管道,因为RuntimeException没有抛出管道
- 添加一个合适的构造方法