java中的异常
程序员文章站
2024-03-12 22:59:45
...
java 中的异常
一、异常的概念
1、什么是异常?
通俗理解:异于平常,本来一件事情正常执行,可能中途会有特殊情况,导致当前事情无法正常执行而影响执行结果,这个中途特殊情况即异常。
例如:a/b这个操作,正常情况是没有任何问题,但是隐藏了一个问题,如果b为0,则这个除法操作将无法执行,则b为0的情况属于a/b这件事情的异常情况
1、什么是异常?
通俗理解:异于平常,本来一件事情正常执行,可能中途会有特殊情况,导致当前事情无法正常执行而影响执行结果,这个中途特殊情况即异常。
例如:a/b这个操作,正常情况是没有任何问题,但是隐藏了一个问题,如果b为0,则这个除法操作将无法执行,则b为0的情况属于a/b这件事情的异常情况
2、Java异常
java异常是java程序运行过程中出现的非正常情况
异常在程序中如果不做处理,会导致程序中途瘫痪,不能正常完成特定功能
异常一般情况是需要通过java异常处理机制给屏蔽或者处理掉
3、Java异常特点
Java异常处理是面向对象处理方式
一旦代码出现异常问题,JVM底层则会创建一个异常类相关的对象
异常对象产生后,会根据代码对异常的处理机制进行操作,其中异常处理机制包括捕获异常和抛出异常两种,如果没有异常操作,则java程序会中断执行
java异常是java程序运行过程中出现的非正常情况
异常在程序中如果不做处理,会导致程序中途瘫痪,不能正常完成特定功能
异常一般情况是需要通过java异常处理机制给屏蔽或者处理掉
3、Java异常特点
Java异常处理是面向对象处理方式
一旦代码出现异常问题,JVM底层则会创建一个异常类相关的对象
异常对象产生后,会根据代码对异常的处理机制进行操作,其中异常处理机制包括捕获异常和抛出异常两种,如果没有异常操作,则java程序会中断执行
4、java异常体系继结构图
二、异常处理之捕获异常
捕获异常处理机制
try{
//可能出现异常的代码部分
}catch(异常类型 异常变量){
//执行异常操作
}catch(异常类型 异常变量){
//执行异常操作
}…
finally{
//处理完try与catch操作后的收尾操作,异常统一出口
}
2、 捕获异常注意事项:
catch定义,由上到下,异常类的范围必须由小到大或者同级别的
运行时异常,catch中可以随意定义类型,程序运行时,会根据catch参数自动匹配
非运行时异常,则catch中定义的异常,在try代码块中必须存在,如果没有类似异常存在,则不允许被定义。
catch定义,由上到下,异常类的范围必须由小到大或者同级别的
运行时异常,catch中可以随意定义类型,程序运行时,会根据catch参数自动匹配
非运行时异常,则catch中定义的异常,在try代码块中必须存在,如果没有类似异常存在,则不允许被定义。
finally关键字,在进行异常处理之后,在异常的处理格式中还有一个finally语句,此语句将作为异常的统一出口,不管是否产生异常, 最终都要执行此段代码
如果try中有return语句,则会先执行return语句,后执行finally,最后返回整个方法
三、异常处理机制之抛出异常
抛出异常处理机制:throws方法抛出异常
此异常主要是针对存在异常的代码块出现的异常问题,中止当前方法的执行
此方法把异常问题抛出给调用此方法的上一级函数当中,并调用出自行处理异常
格式如下:
此异常主要是针对存在异常的代码块出现的异常问题,中止当前方法的执行
此方法把异常问题抛出给调用此方法的上一级函数当中,并调用出自行处理异常
格式如下:
public void test() throws 异常类型{
//存在异常的代码块
}
public class ExceptionTest {
public static void main(String[] args) {
ExceptionTest et = new ExceptionTest();
try {
et.b();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("main方法执行完毕");
}
public void b() throws Exception{
this.a();
System.out.println("b方法执行完毕");
}
public void a()throws Exception{
int a=10;
int b=0;
int result =a/b;
System.out.println("a方法执行完毕");
}
}
原理分析:
1)main方法调用了b方法,b方法调用a方法
2)a方法a/b存在异常抛出后,a方法中断
3)b方法调用a方法获取到了a方法的异常,抛出后中断执行
4)main方法获取到b方法抛出的异常捕捉后,继续往后执行,不中断
1)main方法调用了b方法,b方法调用a方法
2)a方法a/b存在异常抛出后,a方法中断
3)b方法调用a方法获取到了a方法的异常,抛出后中断执行
4)main方法获取到b方法抛出的异常捕捉后,继续往后执行,不中断
抛出异常处理机制:throw抛出异常对象
此操作主要是对当前产生的异常对象进行抛出操作
常用的处理格式是结合try...catch和throws一起使用
此操作主要是对当前产生的异常对象进行抛出操作
常用的处理格式是结合try...catch和throws一起使用
public void test() throws 异常对象类型{
try{
//存在异常的代码块
}catch(异常类型 变量名){
throw 异常对象;
}
}
throw异常对象注意
throw一般存在于catch语句当中,用于出现异常后的一种操作方式
捕捉的异常和抛出的异常不一定相同,可以不一样
throw抛出的异常对象如果是检测异常,则所在的方法必须要通过throws显性抛出
throw抛出的异常对象如果是非检测异常,则方法上可以选择性定义throws
总结:
throw一般存在于catch语句当中,用于出现异常后的一种操作方式
捕捉的异常和抛出的异常不一定相同,可以不一样
throw抛出的异常对象如果是检测异常,则所在的方法必须要通过throws显性抛出
throw抛出的异常对象如果是非检测异常,则方法上可以选择性定义throws
总结:
1、对异常有了大致理解
2、对于异常抛出的使用还存在问题,
3、要多敲敲代码,加深理解
上一篇: ThinkPHP实现简单登陆功能