学习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)之异常处理的主要内容,如果未能解决你的问题,请参考以下文章

Java学习笔记3.10.5 异常处理 - 自定义异常

Java学习笔记3.10.3 异常处理 - 抛出异常

Dart学习-- Dart之异常处理

Java学习笔记3.10.2 异常处理 - 异常捕获

Java并发程序设计(10)线程池之任务结果的异常处理

Java小白入门200例103之异常处理的规则