异常:程序中运行中不正常的情况
区别于程序单纯的写错
数组越界:
int[]a=new int[5];
a[5];
java控制台中会显示每种异常类型和原因,发现异常建立对象并立即抛出
遇到异常时:终止程序运行或进行处理
常见类型:字符串索引越界,数组索引越界,指针为空,算数异常,格式化异常
异常体系结构:
java.lang.Throwable时异常体系中的根类:分为两类
Error和Expection
Error:java虚拟机中无法处理的
常用方法:
public void print StrackTrace();打印栈中的异常信息
public String getMessage();获取异常信息
有两个子类:
java.lang.Error:错误,java程序不可处理比如内存不够用
java.lang.Expection:异常,处理一般性问题
异常:1.广义:所有问题皆可以称之为异常
2.狭义:Expection
test():由于test抛出是一个编译期异常,在编写代码期间,强制要求编译
try catch 获处理
继续throws 一般到了顶层的方法就不能再throws
在方法声明的地方,通过throws 关键字 声明此方法可能会抛出异常使用
throws抛出异常对象,表示此方法不处理异常,交给调用这个方法的地方
进行处理般在底层的方法中,都不进行处理,抛出异常即可
自定义异常:java API中定义的标准异常类,都与语法有关系(例如索引越界,空指针),
但是程序有可能不满足某种业务条件时,想以抛出形式处理,此时需要定义一个与业务相关的异常类来表示(分数不合法,提供ScoreExpection)