异常概念
异常是程序在运行期发生的不正常的事件,它会打断指令的正常执行流程。 设计良好的程序应该在异常发生时提供处理这些不正常事件的方法,使程序不会因为异常的发生而阻断或产生不可预见的结果。 Java语言使用异常处理机制为程序提供了异常处理的能力 |
异常分类
Java程序运行过程中所发生的异常事件从严重性可分为两类:
运行时异常(RunntimeException)非受检性异常:那些程序员在编写程序的时z免的异常(逻辑异常),数组越界异常,类型转换异常,空指针异常 非运行时异常:程序员避免不了,由外界因素导致的 注册:年龄 s 做一个程序可以去读取指定路径的文件内容 路径:用户来给 Exception分类: (数组越界,空指针,类型转换错误) 1、非受检(unchecked)异常(运行时异常 RuntimeException):编译器不要求强制处置的异常。一般是指编程时的逻辑错误。是程序员应该积极避免其出现的异常java.lang.RuntimeException及它的子类都是非受检异常: 错误的类型转换:java.lang.ClassCastException 数组下标越界:java.lang.ArrayIndexOutOfBoundsException 空指针访问:java.lang.NullPointerException 算术异常(除0溢出):java.lang.ArithmeticException
没有找到指定名称的类:java.lang.ClassNotFoundException 访问不存在的文件:java.io.FileNotFoundException 操作文件时发生的异常:java.io.IOException 操作数据库时发生的异常:java.sql.SQLException |
异常处理机制
|
异常处理方式1-----捕获异常
try{ ......//可能产生异常的代码 }catch( ExceptionName1 e ){ ......//异常的处理代码 }catch( ExceptionName2 e ){ ...... //异常的处理代码 } finally{ ......无论如何都会执行的语句 } 说明:
|
异常处理方式2-----throws抛出异常类型,一般与下面的结合
在定义一个方法的时候可以使用throws关键字声明,使用throws声明的方法表示此方法不处理异常,而交给方法的调用出进行处理。 1,本身的程序处理不了了,往上一层抛,由上一层去处理 2,定义一个方法的时候,通过这种方式来告知调用方,我这个方法有可能会发生异常的。 public void test() throws IOException{ } throws使用格式: public 返回值类型 方法名(参数列表) throws{ } 注意:此时抛出的是异常类型,并且抛出的异常类型是紧跟在方法名之后。 |
异常处理方式3-----throw抛出单个具体异常对象
异常不仅仅虚拟机可以抛,我们自己也可以抛。我们可以在代码中使用throw关键字(注意不带s)来抛出某个具体的异常对象。很多情况下我们会手动抛出运行时异常。 例如: throw程序出现了异常"); 结合自定义异常来说明 |
自定义异常类
创建自定义异常
创建自定义异常,需要继承Exception 或其子类。 public class MyException extends Exception { @Override public String toString() { // TODO Auto-generated method stub return"我们自己的异常类"; } } |
使用自定义异常
解决业务需求上的问题 |