异常和抛出异常
什么是异常,Java提供异常处理机制,有什么用
- 什么是异常:程序执行过程中的不正常情况。
- 异常的作用:增强程序的健壮性
public class ExceptionTest01 { public static void main(String[] args) { int a = 10; int b = 0; // 实际上JVM在执行到此处的时候,会new异常对象:new ArithmeticException("/ by zero"); // 并且JVM将new的异常对象抛出,打印输出信息到控制台了。 int c = a / b; System.out.println(a + "/" + b + "=" + c); // 此处运行也会创建一个:ArithmeticException类型的异常对象。 System.out.println(100 / 0); } }
Java语言中异常是以什么形式存在的呐
public class ExceptionTest02 { public static void main(String[] args) { // 通过“异常类”实例化“异常对象” NumberFormatException nfe = new NumberFormatException("数字格式化异常!"); // java.lang.NumberFormatException: 数字格式化异常! System.out.println(nfe); } }
如果要读文件
打开文件
判断文件大小
分配足够的内存
把文件读入内存
关闭文件
异常
有不寻常的事情发生了
当这个事情发生的时候,原本打算要接着做的事情不能在继续了,必须得要停下来,让其他地方的某段代码来处理
异常机制最大的好处就是清晰的分开了正常的业务逻辑代码和遇到情况的处理代码
抛出异常
异常的传播
当某个方法抛出了异常时,如果当前方法没有捕获异常,异常就会被抛到上层调用方法,直到遇到某个try ... catch
被捕获为止:
// exception public class Main { public static void main(String[] args) { try { process1(); } catch (Exception e) { e.printStackTrace(); } } static void process1() { process2(); } static void process2() { Integer.parseInt(null); // 会抛出NumberFormatException } }
异常声明
如果你的函数可能抛出异常,就必须在函数,
头部加以声明
你可以声明并不会真的抛出的异常
什么能扔?
任何继承了Throwable
Exception类继承了Throwable
thow new Exception
thow new Exception("HELP")