java 异常,java,异常,
java 异常,java,异常,
1.异常:
a概念.程序运行过程中出现的非正常情况。
2.分类b异常处理的必要性:所有的程序都存在一些未知的问题或是错误,如果这些问题不进行处理,可能会给用户造成一定的损失。
c.异常处理:程序中一旦有异常发生,则会执行提前准备好的一段代码,减少损失,不会中断程序。
所有异常的父类:Throwable 位于java.lang包下
常用的方法有public string getMessage(); 返回String类型的异常信息
public void printStackTrace();打印跟踪方法调用栈中异常处理信息
(1).Throwable有两个子类:Error和Exception
Error :仅靠程序无法恢复的严重错误,例如:内存不足,(java虚拟机调用方法时)栈溢出
大多数的Error错误是程序无法处理的。
Exception:有分为两个子类 RuntimeException和非RuntimeException
a.RuntimeException(运行时异常,未检查异常);它的本类加所有子类都是运行时异常
特点:java编辑器编译时不是检测此类异常,在运行时报错
常见的运行时异常有:
下标越界异常:java.lang.ArrayIndexOutOfBoundException;
类型转换异常:java.lang.classCastException.
空指针异常:java.lang.NullPointerException (null.+属性/方法引起的)
数字格式转换异常: java.lang.NumberFormalException (string->int/interger时要求的纯数字)
b.非RuntimeException(非运行时异常,及已检查异常)
和RuntimeException没有继承关系的异常类,称为非运行时异常
特点:java编辑器在编译时报错,出现这类异常时编译不通过根本到不了运行这一步,比需处理
3.异常的产生
(1)自动产生异常;程序在运行的过程中,遇到错误的代码,程序自动产生异常,程序因此而终止。
(2)手动产生异常
语法:throw new 异常类名(“实参”);
要求;比需写在方法内
作用;等价于return ,导致程序的终止
int i=1;
if(i==1){
throw new RuntimeException(e);
}
4.传递;异常的传递按方法的调用链,相反的方向进行传递,直到传给JVM虚拟机,导致程序终止。
5.异常的处理
1.消极处理 throws(声明的异常) 定义方法声明的后面
.返回值类型 方法名 (形参列表)throws 异常类名,异常类名1{}
.结果:使用消极异常处理只是把异常消极传递,推卸责任,最终程序无法运行终止,唯一的优势:可以使非运 行 是异常编译通过。
2.积极处理异常:
语法:try{}
catch(){}
注意:
try后边可以跟多个catch块,一旦有异常产生会从第一个catch块,依次匹配
catch可以利用多态使用父类型处理异常:本类型+所有子类型异常
父类的catch块必须定义在其子类的catch块后边
catch只能捕获try中可能出现的非运行时异常
catch中可以捕获任意的运行时异常(不管try中是否具有出现的可能性)
积极处理异常的同时可以采用消极处理异常
finally:不管有没有异常的产生,一定被执行
try{}catch(){} finally{一定被执行的}
因此finally中的语句,不管有没有异常的产生,一定执行
所以在finally 中一般不写return 语句
6.自定义异常
(1)自定义异常类需要继承Exception类或者是Exception的子类,如过自定义异常类想成为运行时异常,需要继承RuntimeException或是RuntimeException 的子类
(2)提供两个构造方法
无参构造方法
提供带有String 参数的构造方法 ,利用super(message)传递参数。
相关文章
- 暂无相关文章
用户点评