Java中的异常分为两种一种是Error一种是Exception。一异常机制的类图如下:
处理异常的方式
抛出异常 throw
throw用在方法内,用来抛出一个异常对象,将这个异常对象传递到调用者处,并结束当前方法的执行。
声明异常 throws 向上抛出
异常捕获 try-catch 自己处理
编译期异常 Exception
运行时异常 RunTimeException
打印异常信息的三个方法
public String getMessage() :获取异常的描述信息,原因(提示给用户的时候,就提示错误原因。
public String toString() :获取异常的类型和异常描述信息(不用)。
public void printStackTrace() :打印异常的跟踪栈信息并输出到控制台
运行时异常(RunTimeException)被抛出可以不处理。即不捕获也不声明抛出。 交给JVM处理,中断程序
如果finally有return语句,永远返回finally中的结果,避免该情况.
如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不抛出异常。
父类方法没有抛出异常,子类重写父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出
总之父类异常什么样,子类就什么样。只能小,不能大;
自定义异常类
需要继承Exception(编译器异常)或者RunTimeException(运行时异常)
publicclassRegisterExceptionextendsException{ publicRegisterException(){ } publicRegisterException(Stringmessage){ super(message); } }