当学习完前面的知识,我们能够写一些简单的功能性的软件了,对于数据的输出,可以使用系统的标准输出打印。但是当我们碰到一些特殊情况,如:
//定义了一个数组 int[] i = new int[3] //输出不存在的元素 System.out.print(i[3]);这样编译时是没有语法错误的,但是当运行时,会找不到数组角标为3的元素。那么这就是一个异常行为。 从上面这个例子,我们不能100%的确认我们编写的程序是正确的。或者说不能确认程序运行时与我们预想的一致。那么当这种不一致出现时,就需要异常处理机制。 不仅仅是在Java中,Python,C++等常用语言都有异常处理机制。 下面来看看Java中的异常处理机制。
执行代码时,一旦出现异常,就会在异常的代码处生成一个对应的异常类型的对象,并将此对象抛出(自动抛出/手动抛出)。
一但抛出,程序终止执行此异常类的对象抛给方法的调用者手动抛出:throw new ArithmeticException();抓住上一步抛出来的异常类的对象,如何抓: java提供两种方式来处理一个异常类的对象
交给方法的调用者去处理,例如在读写IO流时会需要显式处理调用可能产生异常的方法可能抛出的异常。
仿照一个异常来写:
public class MyException extends RuntimeException{ static final long serialVersionUID=-87878787; public MyException(){ super(); } public MyException(String msg){ //异常携带的Message super(msg); } }