java在己有的类创子类怎么创_如何使用Java创建自己的异常子类
Java不知道学了多少课时了,你知道如何使用Java创建自己的异常子类吗,Java的内置异常处理有哪些常见的错误呢,今天IT培训网小编就来给大家详细介绍下吧:
尽管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);
} catch (MyException e) {
System.out.println("Caught " + e);
}
}
}
该例题定义了Exception的一个子类MyException。该子类非常简单:它只含有一个构造函数和一个重载的显示异常值的toString( )方法。ExceptionDemo类定义了一个compute( )方法。该方法抛出一个MyException对象。当compute( )的整型参数比10大时该异常被引发。
main( )方法为MyException设立了一个异常处理程序,然后用一个合法的值和不合法的值调用compute( )来显示执行经过代码的不同路径。下面是结果:
Called compute(1)
Normal exit
Called compute(20)
Caught MyException[20]
通过以上教程,你是否学会了使用Java创建自己的异常子类了呢,如果学会了,就赶紧学习下一篇吧!
java在己有的类创子类怎么创_如何使用Java创建自己的异常子类相关推荐
- java在己有的类创子类怎么创_使用Java创建自己的异常子类
尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况.这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwabl ...
- java在己有的类创子类怎么创_使用Java创建自己的异常子类...
尽管java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况.这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwabl ...
- final类是否可以被代理_浅谈Java【代理设计模式】——看这篇文章就懂了
什么是代理模式 为其他对象提供一种代理以控制对这个对象的访问. 为什么使用代理模式 中介隔离:在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的 ...
- java类二次加载_深入理解java之类加载器
一.类与类加载器 类加载器:实现加载阶段的第一步,通过一个类的全限定名来将这个类的二进制字节流加载进jvm. 类与类加载器:任意一个类唯一性都是由它本身和加载它的类加载器确定,两个类是否相等在它们是由 ...
- 【java笔记】File类(2):获取,判断,创建,删除,遍历目录方法
[java笔记]File类(1)概述,静态成员,构造方法_m0_52043808的博客-CSDN博客 获取功能方法: public String getAbsolutePath():返回此File的绝 ...
- 开课吧课堂之如何创建自己的异常子类
尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况.这是非常简单的:只要定义Exception的一个子类就可以了(Exception当然是Throwabl ...
- java语言 写一算法求其叶子数目_数据结构(Java)在线作业1. 设n为哈夫曼树的叶子结点数目,则该哈夫曼树共有( )个结点。A. n+1B. 2n-1...
数据结构(Java)在线作业1. 设n为哈夫曼树的叶子结点数目,则该哈夫曼树共有( )个结点.A. n+1B. 2n-1 数据结构(Java)在线作业 1. 设n为哈夫曼树的叶子结点数目,则该哈夫曼树 ...
- Java中final类是存放在哪_详解Java中的final关键字
1 修饰属性或者变量 无论属性是基本类型还是引用类型,作用都是变量里面存放的"值"不可变 经常和static关键字一起使用,作为常量 1 基本类型,变量放的是实实在在的值,如1,& ...
- java 包结构 枚举类_Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类...
因为Jdk7及以前的日期时间类的不方便使用问题和线程安全问题等问题,2005年,Stephen Colebourne创建了Joda-Time库,作为替代的日期和时间API.Stephen向JCP提交了 ...
最新文章
- 9-7NOIP模拟赛总结
- 【信息抽取】如何使用BERT进行关系抽取
- 毕业的答辩需要的要求(从校方的角度)
- h5策划书_一个好的H5营销活动设计要如何进行策划
- Libra教程之:执行Transactions
- linux ls 配色方案,ubuntu 更改ls配色方案
- 漫谈IBM Power VM历史及其特点
- Django开发利器——django-debug-toolbar
- CAD2020学习教程
- linux内核调用串口,linux驱动之串口驱动框架
- 大数据之实时数据分析之Apache Doris数据库
- Python实战回归模型-消费者人群画像-信用智能评分(基于中国移动用户数据)
- 生活随记 - 被摩拜app忽悠了
- 微信公众号如何变得更好_五个使Windows变得更好的绝对必要的实用程序
- 使用终端生成icns,icon文件
- 考研政治——马克思辩证法中的两大特征和五大范畴
- 联想笔记本进入pe_联想小新笔记本怎么进入bios设置U盘启动
- 做人,别伤人,别骗人,别负人!
- JDK8 超详细,肝
- 《Kubernetes故障篇:Kubernetes Node节点DiskPressure异常处理》
热门文章
- jupyter分割代码块_科研分享—Python根据关键词自动抓取Pubmed文献标题(附全部代码)文末有福利...
- 剑指offer: 面试题40. 最小的k个数
- 剑指offer:面试题17. 打印从1到最大的n位数
- js中Object类型和Array类型的变量被赋值(复制)给其他变量后,修改被赋值(复制)的新变量的值,会影响原始变量的值,这是为什么呢?
- 在Ubuntu 16.04.5 LTS上利用python中的PIL模块压缩一百多兆的单张图片实操
- 内存分配器设计的演进
- leetcode-376 摆动序列
- Linux进程描述符task_struct结构体简析
- 矢量图面层和线层相交得到相交后的线层文件(gis相交)
- 浅析对象访问属性的.和[]方法区别