Java把异常当作对象处理,并定义一个基类java.lang.THrowable作为所有异常的超类。
在Java API中已定义了许多异常类,这些异常类分为两大类:错误ERROR和异常EXCEPTION。
Error类对象由Java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。
Exception分支有一个重要的子类RuntimeException(运行时异常),这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。
- NullPointerException(空指针异常) - IndexOutOfBoundsException(索引下标越界) - ArrayIndexOutOfBoundsException (数组下标越界) - ClassNotFoundException(找不到类) - ArithmeticException(算数异常) Exception异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常发生。Error和Exception区别:Error通常是灾难性致命错误,是程序无法控制和处理的,当出现这些异常时,Java虚拟机(JVM)一般会选择终止线程;Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能去处理这些异常。
catch括号中放捕获异常类型,可写多个,最大的写在最下面
- catch中调用printStackTrace()表示打印错误栈信息finally处理善后工作,比如关闭I/O流
throw主动抛出异常,一般用在方法中
throws在方法上抛出异常
ctrl+Alt+T 生成异常快捷键使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只要继承Exception类即可。
自定义异常类步骤:
- 创建自定义异常类。 - 在方法中通过throw关键字抛出异常对象。 - 如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。 - 在出现异常方法的调用者中捕获并处理异常。