java中自定义异常的父类是6_Java之异常

异常

异常的类型的体系结构

1、异常系列的父类:java.lang.Throwable

(1)只有它或它子类的对象,才能被JVM或throw语句“抛”出

(2)也只有它或它子类的对象,才能被catch“捕获”

2、Throwable分为两大派

(1)Error:严重错误,需要停下来解决这个问题

(2)Exception: 一般的异常,可以通过判断、检验进行避免,或者使用try...catch进行处理

3、Exception又分为两大类

(1)运行时异常:是RuntimeException或它子类的对象。

这种类型的异常,编译器不会提醒,要进行throws或try...catch进行处理,但运行时可能导致崩溃。

(2)编译时异常:

异常除了运行时异常以外的都是编译时异常。

这种类型的异常,编译器是强制要求throws或try...catch进行处理,否则编译不通过。

1)运行时异常

RuntimeException、NullPointerException,ClassCastException,ArithmeticException,NubmerFormatException,IndexOutOfBoundsException、StringIndexOutOfBoundsException、InputMisMatchException......

(2)编译时异常

FileNotFoundException、IOException、SQLException......

异常的处理

1、在当前方法中处理:try...catch...finally

//形式一:try...catch

try{

可能发生异常的代码

}catch(异常类型  异常名e){

处理异常的代码(一般都是打印异常的信息的语句)

}catch(异常类型  异常名e){

处理异常的代码(一般都是打印异常的信息的语句)

}。。。

//形式二:try...finally

try{

可能发生异常的代码

}finally{

无论try中是否有异常,也不管是不是有return,都要执行的部分

}

//形式三:try..catch..finally

try{

可能发生异常的代码

}catch(异常类型  异常名e){

处理异常的代码(一般都是打印异常的信息的语句)

}catch(异常类型  异常名e){

处理异常的代码(一般都是打印异常的信息的语句)

}

finally{

无论try中是否有异常,也不管catch是否可以捕获异常,也不管try和catch中是不是有return,都要执行的部分

}

2、在当前方法中不处理异常,明确要抛给调用者处理,使用throws

语法格式:

【修饰符】 返回值类型  方法名(【形参列表】) throws 异常列表{

}

手动抛出异常:throw

throw 异常对象;

//例如:

throw new AccountException("xxx");

throw抛出来的异常对象,和JVM抛出来的异常对象一样,也要用try..catch处理或者throws。

自定义异常

1、必须继承Throwable或它的子类

比较多的是继承RuntimeException和Exception.

如果继承RuntimeException或它的子类,那么自定义的这个异常就是运行时异常。编译器不提醒处理。

如果继承Exception,那么它属于编译时异常,编译器会强制你处理。

2、建议保留两个构造器

public 自定义异常名(){

}

public 自定义异常名(String message){

super(message);

}

3、自定义异常对象,必须手动抛出,用throw抛出

9.5 关于异常的方法

(1)e.printStackTrace():打印异常对象的详细信息

(2)e.getMessage():获取异常的message信息

关于异常信息的打印:

用System.err打印和用e.printStackTrace()都是会标记红色。

用System.out打印,成普通信息打印。

这两个打印是两个独立的线程,顺序是不能精确控制的。

标签:...,Java,处理,打印,try,catch,异常

来源: https://blog.csdn.net/Brevity6/article/details/91409470

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值