尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况。这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwable的一个子类)。你的子类不需要实际执行什么——它们在类型系统中的存在允许你把它们当成异常使用。

Exception类自己没有定义任何方法。当然,它继承了Throwable提供的一些方法。因此,所有异常,包括你创建的,都可以获得Throwable定义的方法。这些方法显示在表10-3中。你还可以在你创建的异常类中覆盖一个或多个这样的方法。

表 10-3 Throwable 定义的方法

方法

描述

Throwable fillInStackTrace( )

返回一个包含完整堆栈轨迹的Throwable对象,该对象可能被再次引发。

String getLocalizedMessage( )

返回一个异常的局部描述

String getMessage( )

返回一个异常的描述

void printStackTrace( )

显示堆栈轨迹

void printStackTrace(PrintStreamstream)

把堆栈轨迹送到指定的流

void printStackTrace(PrintWriterstream)

把堆栈轨迹送到指定的流

String toString( )

返回一个包含异常描述的String对象。当输出一个Throwable对象时,该方法被println( )调用

下面的例子声明了Exception的一个新子类,然后该子类当作方法中出错情形的信号。它重载了toString( )方法,这样可以用println( )显示异常的描述。

// This program creates a custom exception type.

class MyException extends Exception {

private int detail;

MyException(int a) {

detail = a;

}

public String toString() {

return "MyException[" + detail + "]";

}

}

class ExceptionDemo {

static void compute(int a) throws MyException {

System.out.println("Called compute(" + a + ")");

if(a > 10)

throw new MyException(a);

System.out.println("Normal exit");

}

public static void main(String args[]) {

try {

compute(1);

compute(20);

}

该例题定义了Exception的一个子类MyException。该子类非常简单:它只含有一个构造函数和一个重载的显示异常值的toString( )方法。ExceptionDemo类定义了一个compute( )方法。该方法抛出一个MyException对象。当compute( )的整型

main( )方法为MyException设立了一个异常处理程序,然后用一个合法的值和不合法的值调用compute( )来显示执行经过

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

java在己有的类创子类怎么创_使用Java创建自己的异常子类相关推荐

  1. java在己有的类创子类怎么创_如何使用Java创建自己的异常子类

    Java不知道学了多少课时了,你知道如何使用Java创建自己的异常子类吗,Java的内置异常处理有哪些常见的错误呢,今天IT培训网小编就来给大家详细介绍下吧: 尽管Java的内置异常处理大多数常见错误 ...

  2. java语言与www技术形成性考核册_电大Java语言与WWW技术形成性考核填空题

    2017电大最新题库 电大Java语言与WWW技术形成性考核填空题 1.Java具有的特点简单.面向对象.与平台无关.解释型.多线程.安全.动态的语言. 2.开发与运行Java程序需要经过的三个主要步 ...

  3. java 子类继承父类_关于Java 的继承问题,子类会继承父类的哪些东西?-----转载...

    和C++类似,可以继承基类的公共属性和方法. 在Java继承里,父类的属性还有方法在声明时,如果是public关键字即公共属性,则在子类继承时,这些属性和方法都会被子类继承.受保护的也可以继承 但是私 ...

  4. 开课吧课堂之如何创建自己的异常子类

    尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况.这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwabl ...

  5. java中把路径定义到src下的_设置java路径路径

    JDK环境变量配置 java设置classpath,path,java_home环境变量 Windows7安装JDK的环境变量设置Windows7 X64安装"jdk-6u26-window ...

  6. java在己有的类创子类怎么创_使用Java创建自己的异常子类...

    尽管java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况.这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwabl ...

  7. java 保护类型_Java 类的受保护访问(学习 Java 编程语言 046)

    最好将类中的字段标记为 private,而方法标记为 public.任何声明为 private 的内容对其他类都是不可见的.这对子类来说也完全适用,即子类也不能访问超类的私有字段. Java 中的受保 ...

  8. java类的定义的实例_《Java基础知识》Java类的定义及其实例化

    类必须先定义才能使用.类是创建对象的模板,创建对象也叫类的实例化. 下面通过一个简单的例子来理解Java中类的定义: public classDog { String name;intage;void ...

  9. JAVA有没有比robot更好用的_使用Java/Python提高工作效率01-Java Robot类

    用Java实现可重复性的鼠标键盘事件--Robot类的使用 Robot类的定义: 构建 Robot() // 在初始屏幕的坐标系上构建一个Robot类 Constructs a Robot objec ...

最新文章

  1. 生成树的计数 Matrix-Tree(矩阵树)定理
  2. python高级语法-套接字编程之UDP和TCP编程
  3. HAPPY_TOGETHER_WEEK15_ENJOY
  4. RFC的远程调用-异步
  5. C#语言: 生成静态页面核心代码
  6. 【NumPy基础】100道numpy练习——Apprentice篇
  7. logisim数据选择器_基于Logisim的CRC编码电路实现.pdf
  8. 浅谈JavaScript设计模式
  9. VScode远程root权限调试
  10. 逆概率加权Doubly Robust Methods
  11. 使用UpdateLayeredWindow有概率出现317错误解决方法
  12. 如何设置正确的dns服务器地址,dns服务器地址如何设置
  13. SVN:One or more files are in a conflicted state
  14. JavaScript 习题及面试题 4
  15. 求平方根的牛顿迭代matlab程序,牛顿迭代法求平方根
  16. 图解unicode、utf8和utf8mb4
  17. Linux - samba实现Linux与windows文件共享——共享文件夹目标文件访问权限被拒绝解决方案(超详细,看不懂你怪我)
  18. C语言源代码系列-管理系统之单项选择题标准化考试系统设计
  19. KSM(Kernel Samepage Merging) 剖析:Linux 内核中的内存去耦合
  20. 荣誉系统排名是整个服务器,魔兽世界60年代的PVP荣誉系统、军阶对照表和各职业的徽记效果...

热门文章

  1. Qt学习笔记之网络相关概念
  2. py-faster-rcnn在Windows下的end2end训练
  3. 5.6 前端开发日报
  4. react native中一次错误排查 Error:Error: Duplicate resources
  5. 异步加载在Vue生命周期哪个阶段更合理
  6. 本月 Firefox 65 将加入 Flexbox Inspector 开发者工具
  7. 找到下一个“元素节点”通用函数
  8. WinForm 数据库无限填充树目录 treeView
  9. std::shared_ptr
  10. Android 通过Service单独进程模仿离线推送 Server Push