异常定义【百度百科定义】
- 异常的体系
- Throwable
- Error
- 通常出现重大问题如:运行的类不存在或者内存溢出
- 不编写针对代码对其处理
- Exception
- 在运行时出现异常情况,可以通过try catch finally
- Error
- Throwable
- Exception和Error的子类名都是以父类名作为后缀。
- Throwable中的方法
- getMess()
- 获取异常信息,返回字符串。
- toString()
- 获取异常类名和异常信息,返回字符串
- printStackTrace()
- 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。
- printStackTrace(PrintStream s)
- 通常用该方法将异常内容保存在日志文件中,以便查阅
- getMess()
throws和throw
- throws用于标示函数暴露出的异常。
- throw用于抛出异常对象。
- throws与throw的区别:
- throws用在函数上,后面跟异常类名。
- throw用在函数内,后面跟异常对象。
异常处理
try{
需要检测的代码;
}catch(异常类 变量){
异常处理代码;
}finally{
一定会执行的代码;
}
finally代码块只有一种情况不会执行,就是在之前执行了System.exit().
例子:
异常: 是在运行中发生的不正常情况
在Java中用类的形式对不正常情况进行了描述和封装
在描述不正常的情况的类,就称为异常类
- 以前正常流程和代码问题相结合
现在将正常流程代码和问题处理分离,提高阅读性 - 其实异常就是Java通过面相对象的思想将问题封装成了对象
用异常类对其进行描述,不同的问题用于不同类进行具体的描述,比如角标越界,空指针等。
问题很多,意味着描述的类也很多,将其类共性进行向上抽取,形成了异常体系
最终问题(不正常情况)就分成了两大类:
Throwable:无论是error还是异常。问题发生就可以抛出,让调用者知道并处理。
该地体系的特点就在于Throwable及其虽有的子类都具有可抛性。
可抛性到底指的是什么呢?怎么体现可抛性呢?
其实是通过两个关键字来体现的
throws throw,凡是可以被这两个关键字所操作的类和对象都具有可抛性。- 一般不处理的Error。特点是由jvm抛出的严重性的问题。
- 可以处理的exception
该体系的特点:
子类的后缀名,是由其父类名作为后缀,阅读性很强。
/*
*/
class ExceptionDemo{
public static void main(String[] args){
int[] arr =new int[1024*1024*800];//outof MerryError: java heap space
}
}