java基础学习-异常
来源:互联网 发布:新浪网络传真 编辑:程序博客网 时间:2024/05/17 05:59
异常
Java把异常当作对象来处理
异常结构
Throwable是所有异常的根,java.lang.Throwable
Error是错误,java.lang.Error
Exception是异常,java.lang.Exception
异常分类
Exception异常分为两大类
a) Checked exception(非运行时异常) (非 RuntimeException,Error)
如IO异常
b) Unchecked exception(运行时异常)(RuntimeException,Error)
如数组越界、空指针等
Java中所有的异常类都会直接或间接地继承自Exception。
RuntimeException类也是直接继承自Exception类,它叫做运行时异常,Java中所有
的运行时异常都会直接或间接地继承自RuntimeException。
Java 中凡是继承自Exception而不是继承自RuntimeException的类都是非运行时异
常。
异常处理
a)对于非运行时异常(checked exception),必须要对其进行处理,处理方式有两种:
第一种是使用try.. catch…finally 进行捕获;
第二种是在调用该会产生异常的方法所在的方法声明throws Exception
第一种是使用try.. catch…finally 进行捕获;
第二种是在调用该会产生异常的方法所在的方法声明throws Exception
b)对于运行时异常(runtime exception),我们可以不对其进行处理,也可以对其进行
处理。推荐不对其进行处理。
try{
} catch(Exception e) {
} finally {
}
无论程序是否出现异常,finally 块中的代码都是会被执行的。
如果try 块中存在return 语句,那么首先也需要将finally 块中的代码执行完毕,然
后方法再返回。
如果try 块中存在System.exit(0)语句,那么就不会执行finally 块中的代码,因为
System.exit(0)会终止当前运行的Java虚拟机,程序会在虚拟机终止前结束执行。
我们可以使用多个catch块来捕获异常,这时需要将父类型的catch块放到子类型的
catch块之后,这样才能保证后续的catch可能被执行,否则子类型的catch将永远
无法到达,Java 编译器会报编译错误;如果多个catch 块的异常类型是独立的
(MyException, MyException2), 那么谁前谁后都是可以的。
catch块之后,这样才能保证后续的catch可能被执行,否则子类型的catch将永远
无法到达,Java 编译器会报编译错误;如果多个catch 块的异常类型是独立的
(MyException, MyException2), 那么谁前谁后都是可以的。
自定义异常
所谓自定义异常,通常就是定义了一个继承自Exception类的子类,那么这个类就是
一个自定义异常类。通常情况下,我们都会直接继承自Exception类,一般不会继承
某个运行时的异常类。
一个自定义异常类。通常情况下,我们都会直接继承自Exception类,一般不会继承
某个运行时的异常类。
class ChushulingException extends Exception{ public ChushulingException(String msg){ super(msg); } } class ChushufuException extends Exception{ public ChushufuException(String msg){ super(msg); } } /*自定义异常 End*/ class Numbertest{ public int shang(int x,int y) throws ChushulingException,ChushufuException{ if(y<0){ throw new ChushufuException("您输入的是"+y+",规定除数不能为负数!");//抛出异常 } if(y==0){ throw new ChushulingException("您输入的是"+y+",除数不能为0!"); } int m=x/y; return m; } }
0 0
- java基础学习-异常
- java基础学习—异常
- 黑马程序员-学习笔记java基础-异常
- 黑马程序员-----Java基础学习异常
- 黑马程序员------Java基础学习------异常处理
- Java基础学习——异常处理
- JAVA基础_Java 学习之 异常
- Java基础学习总结---------异常Exception(2)
- JAVA基础学习(十)--异常、包
- java基础学习之异常Exception 十
- java基础学习二之异常
- java基础学习(三)--异常处理
- 【安卓学习笔记】 JAVA基础-异常
- java基础学习日志--异常案例
- Java基础学习11_异常与异常处理
- java学习——java基础(四)之异常
- java基础学习笔记_异常和包
- java 从零开始,学习笔记之基础入门<异常>(十五)
- message_lite.h
- Linux下Tomcat的安装配置
- repeated_field.h
- 协议模拟编程之ADSL模式下IP自动换
- andorid之摄像头驱动流程--MTK平台
- java基础学习-异常
- service.h
- Windows 7 Pro Vl & ENT(专业版vl及企业版)
- 我的vimrc
- 内存泄露
- MySQL 模拟Oracle邻接模型树形处理
- text_format.h
- PAT basic 1027(Python版)
- 软工文档总结(二)——文档的概述