- 什么是异常?
- 异常就是在程序运行时的不正常情况
- 程序运行中的不正常的情况:
- 数组越界: int[] a=new int[6];a[6];
- 由于程序在运行的过程中,由于用户输入的数据格式有问题,读取文件,文件被删除了,网络传输过程中,断网了,诸如此类情况,就会出现异常.
2.异常的处理
- java中默认的异常处理机制:当程序出现异常时,会将异常包装在一个对应的对象中,并抛出对象,同时终止程序的运行.
- 在异常处理时遇到异常就终止程序的运行(这是不建议的).
- 在异常处理时,进行java异常处理这是推荐的.
3.异常的体系结构
- java异常类的根类是java.lang.Throwable
- 里面常用的两个方法
- public void printStackTrace();打印栈里的异常信息;
- public String getMassage(); 获取异常信息;
- 在根类下有两个子类
- java.lang.Error:错误,是java程序无法处理的,例如内存不够用了;
- java.lang.Exception:异常;
4.java中异常的具体处理
- java发生异常时候,可以执行预先设定好的处理程序,当处理完成后,程序不会停止,可以继续向后运行.
- 要达到上述目的,需要程序员根据不同的情况预先设置好处理程序
- 如果程序执行时,出现问题,执行异常处理程序
- 如果程序执行时,没有遇到问题,那么就不需要执行异常处理程序.
- 接下来是异常处理的具体代码
-
public class demo2 { public static void main(String[] args) { try { String s=null; s.length(); int a=10; int b=0; int c=a/b; //写可能会出现异常的代码,需要长期积累 } catch (NullPointerException n){ n.printStackTrace(); System.out.println("出现空指针!"); }catch (ArithmeticException n){//捕获出现的指定的异常对象,如果类型不对,就捕获不到 n.printStackTrace(); System.out.println("除数不能为0!"); } System.out.println("next"); } }
其中可以获取的常见的错误代码有:
-
NullPointerException 出现了空指针
-
ArithmeticException 数学计算出现问题(除数为0)
-
FileNotFoundException 文件找不到了
-
IOException 读取文件发生异常(可能文件隐藏或者加密了)
-
finally的用法是必须执行的代码,当错误代码被catch捕获时,之后紧接着便会执行finally中的程序,例如不让程序接着出错,因为我们不能够保证try或者catch中的程序有没有出错,所以必须给自己留一条后路.