学习Java(10)之异常处理
Posted So istes immer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习Java(10)之异常处理相关的知识,希望对你有一定的参考价值。
1、异常(Exception)是程序执行过程中出现的非正常事件,即各种意外情况。比如说:① 用户输入出错② 所需文件找不到③ 运行时磁盘空间不够④ 内存不够⑤ 算术运算错 (数的溢出,被零除…)⑥ 数组下标越界
但是异常不是错误
我们常说的错误有三种:
①语法错。比如没定义变量,漏了分号,括号不匹配,这在程序编译的时候就能检查出来。
②语义错。比如输入的数据格式不对,给变量赋值超过其范围。这种错误只有程序运行的时候才能发现。
③逻辑错。编译运行都通过,但是结果与预期不符。例如循环次数不对造成结果不对。
异常处理机制:我们对异常进行捕获并处理,即使程序在运行时发生了错误,也可以继续运行。
Throwable类是所有异常类的父类。它分为两个子类:Error类和Exception类。
Error类包括动态链接失败、虚拟机出错等异常,该类异常Java不要求捕获,同时系统也不会抛出该类异常
Exception类是指程序代码中要处理的异常
系统定义的异常 | 异常的解释 |
---|---|
ClassNotFoundException | 未找到要装载的类 |
ArrayIndexOutOfBoundsException | 数组访问越界 |
FileNotFoundException | 文件找不到 |
IOException | 输入输出错误 |
NullPointerException | 空指针访问 |
ArithmrticException | 算术运算错误,如除数为0 |
NumberFormatException | 数字格式错误 |
InterruptedException | 中断异常,线程在运行暂停处理时被调度打断将引发该异常 |
2、进行异常处理必须使用try程序块
格式:
try{
}catch{
}finally{
}
一个try可以引导多个catch块
一个try语句必须带有至少一个catch语句块或一个finally语句块
无论异常发生否,finally部分的语句均要执行,即使try或catch块中有return,程序也是先执行finally块再返回,除非遇到System.exit(0)将停止程序运行
3.自定义异常
public class MyException extends Exception{
…
}
系统定义的异常可以由系统在执行过程中自动抛出
而用户自定义的异常,则需要在程序中通过throw语句抛出
try{
throw new MyException("…");
}catch(){…}
4.方法的异常声明
某一方法中有异常抛出
两种选择:
①在方法内对异常进行捕获处理
②在方法中不处理异常,将异常处理交给外部调用程序
public static void main(String args[]){
try{…}catch(IOException e){}
}
这样写编译时会检测到未处理IO异常二提示错误
但在main方法头加上throws子句是允许的,如下:
public static void main(String args[]) throws IOException{
…
}
以上是关于学习Java(10)之异常处理的主要内容,如果未能解决你的问题,请参考以下文章