首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

怎么编写一个自定义的Exception类

2012-09-23 
如何编写一个自定义的Exception类如何编写一个自定义的Exception类1.编写自定义异常类实际上是继承一个API

如何编写一个自定义的Exception类
如何编写一个自定义的Exception类


1.编写自定义异常类实际上是继承一个API标准异常类,用新定义的异常处理信息覆盖原有信息的过程。

  至少要继承Throwable或Throwable的子类(Exception),然后编写两个构造函数,一个无参构造函数,另一个提供描述异常信息字符串参数的构造函数。

  在继承任何异常时,将自动继承Throwable类的一些标准特性,如:
      错误消息
      栈跟踪
      异常包装



2.代码示例:

class SomeException extends Exception{public SomeException(){}public SomeException(String s){super(s);}}


3.在显示异常信息的时候,其实就是调用异常对象的toString()方法
 +SomeException(String s)       |       +super(s):SomeException            |            +super(s):Exception                |                +detailMessage = s:Throwable


  所以说在throw new SomeException(String s)抛出异常时,异常描述信息,被延着继承链一直往基类方向传递(SomeException->Exception->Throwable),在输出异常信息的时候,会调用异常对象的toString()方法。

  在Throwable当中toString()定义如下:
 
public String toString() {        String s = getClass().getName();        String message = getLocalizedMessage();        return (message != null) ? (s + ": " + message) : s;  }


  而message来自于detailMessage,所以说,异常描述信息,最终会以"类的全限名:异常描述信息"的方式打印出来,再打印出堆栈当中函数调用链的信息。

热点排行