JavaSe第四天笔记小记
JavaSe第四天笔记小记
1、异常
程序运行中遇到的各种异常问题,即java中所说的“异常”,Exception
- 指程序运行中出现的不期而遇的各种状况,例如文件找不到、网络连接错误、非法参数等
- 异常发生在程序运行期间,它影响了正常的程序执行流程
异常的简单分类

异常体系框架
- java把异常当作对象来处理,并定义一个基类,java.lang.Throwable作为所有异常的超类
- java api中已经定义了许多异常类,这些异常类分成两大类,错误Error和异常Exception

- Error类对象由java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关
- Java虚拟机运行错误(Virtual MachineError),当JVM不再有继续执行操作所需的内存资源时,将出现OutOfMemoryError。这些异常发生时,JVM一般会选择线程终止;
Error和Exception的区别:Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常,JVM会选择终止线程;Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能去处理这些异常
异常处理机制
五个关键字:
- try:监控区域
- catch:捕获异常
- finally:处理善后工作,无论有没有捕获到异常都会执行
- throw:主动的抛出异常,一般在方法中使用
- throws:假设这个方法中,处理不了这个异常,那么在方法上抛出异常
try{
//(尝试运行的)程序代码
}catch(异常类型 异常的变量名){
//异常处理代码 , 可以写多个catch,范围从小到大
}finally{
//异常发生,方法返回之前,总是要执行的代码 // 可以不要finally
}
public class Outer{
public static void main(String[] args) {
int a=1;
int b = 0;
// 在这里处理异常
try {
a(a, b);
} catch (Exception e) {
e.printStackTrace();
}
}
// 方法处理不了就再网上抛
public static void a(int a, int b) throws Exception{
// 如果不在方法里面处理异常,那么就必须往上抛!!把锅推给上层
if(b == 0){
throw new ArithmeticException("算数异常!!!");
}
System.out.println(a/b);
}
}
自定义异常
// 自定义异常类,继承Exception类
public class MyException extends Exception{
private int detail;
public MyException(int detail){
this.detail = detail;
}
public String toString(){
return new String("MyException{" + detail + "}");
}
}
实际开发中的经验总结

默默努力也能成为一个不输别人的人

浙公网安备 33010602011771号