开发工具与关键技术:MyEclipse 10;Java基础语法
撰写时间:2019-07-16
所谓的异常就是不正常,是指程序在运行时出现的不正常情况。其实就是程序中出现了问题。 而这个问题按照面向对象思想进行描述,并封装成了对象。因为问题的产生有产生的原因、有问题的名称、有问题的描述等多个属性信息存在。当出现多属性信息最方便的方式就是将这些信息进行封装。异常就是 java 按照面向对象的思想将问题进行对象封装。这样就方便于操作问题以及处理问题
异常体系的Throwable
Error:指JVM出现的重大问题,不可修复。
Exception:在运行时出现的异常,可以处理
Exception异常处理两种方式:
1、捕获异常:try catch 直接处理可能出现的异常!
2、声明异常:throws 声明告诉调用者可能的异常,暴露问题,调用者自己处理!
异常处理方式:
Try{
//可能出现异常的代码
}catch(异常类 对象){
//处理该异常类型的语句
}finally{
//一定会执行的代码,除catch快中使用System.exit(1);
}
Throw:手动抛出异常。
Throws:声明异常。
异常分类:编译时异常:check异常
使用try...catch处理
运行时异常:Runtime
在不使用try、、、catch处理是,一旦出现异常就由JVM处理
Throw与throws的区别:
Throws:在可能出现异常的方法上声明抛出可能异常的类型,
在当前方法不知道如何处理这种异常时,可将该异常交给上一级调用者处理
Throw:自动抛出一个异常对象,抛出异常类的对象。
如果throw抛出的是Runtime异常:程序可以显示使用try...catch来捕获处理,也可交给方法调用者;若throw抛出Check异常:要么放在try中自己处理,要么放在一个throws声明的方法里交予调用者。
了解一些异常类是必不可少的。
Error:AWTError,ThreadDeath
Check异常:SQLException,ClassNotFoundException等
Runtime异常:RuntimeException(运行时异常)是指因设计或实现方式不当而导致的问题。说白了,就是程序员造成的,程序员小心谨慎是完全可以避免的异常。比如,事先判断对象是否为 null就可以避 NullPointerException 异常,事先检查除数不为0就可以避免ArithmeticException异常;
Finally是异常的统一出口: 不管try块程序是否异常,也不管哪个catch执行,finally 块总会执行。try语句块或会执行的 catch 语句块使用了JVM 系统退出语句例外;//System.exit(1);
try 块必须和 catch 块或和 finally 同在,不能单独存在,二者必须出现一个。不要在 finally中使用 return 或 throw 语句,否则将会导致 try、catch 中的 return 或 throw 失 效。