欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java中的异常

程序员文章站 2024-03-12 22:59:45
...
                                                                          java  中的异常                   
一、异常的概念
1、什么是异常?
通俗理解:异于平常,本来一件事情正常执行,可能中途会有特殊情况,导致当前事情无法正常执行而影响执行结果,这个中途特殊情况即异常。
例如:a/b这个操作,正常情况是没有任何问题,但是隐藏了一个问题,如果b为0,则这个除法操作将无法执行,则b为0的情况属于a/b这件事情的异常情况

2、Java异常
 java异常是java程序运行过程中出现的非正常情况
异常在程序中如果不做处理,会导致程序中途瘫痪,不能正常完成特定功能
异常一般情况是需要通过java异常处理机制给屏蔽或者处理掉

3、Java异常特点
Java异常处理是面向对象处理方式
一旦代码出现异常问题,JVM底层则会创建一个异常类相关的对象
异常对象产生后,会根据代码对异常的处理机制进行操作,其中异常处理机制包括捕获异常和抛出异常两种,如果没有异常操作,则java程序会中断执行   

4、java异常体系继结构图


java中的异常

二、异常处理之捕获异常
捕获异常处理机制
try{
	//可能出现异常的代码部分
 }catch(异常类型 异常变量){
	//执行异常操作
}catch(异常类型 异常变量){
	//执行异常操作
 }…
finally{
    	//处理完try与catch操作后的收尾操作,异常统一出口
} 
2、 捕获异常注意事项:

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方法执行完毕");  
    }  
  
}  
java中的异常
原理分析:
1)main方法调用了b方法,b方法调用a方法
2)a方法a/b存在异常抛出后,a方法中断
3)b方法调用a方法获取到了a方法的异常,抛出后中断执行
4)main方法获取到b方法抛出的异常捕捉后,继续往后执行,不中断
抛出异常处理机制:throw抛出异常对象
此操作主要是对当前产生的异常对象进行抛出操作
常用的处理格式是结合try...catch和throws一起使用

public void test() throws 异常对象类型{
	try{
		//存在异常的代码块
	}catch(异常类型 变量名){
		throw 异常对象;
	}
}
throw异常对象注意
throw一般存在于catch语句当中,用于出现异常后的一种操作方式
捕捉的异常和抛出的异常不一定相同,可以不一样
throw抛出的异常对象如果是检测异常,则所在的方法必须要通过throws显性抛出
throw抛出的异常对象如果是非检测异常,则方法上可以选择性定义throws
总结:
1、对异常有了大致理解
2、对于异常抛出的使用还存在问题,
3、要多敲敲代码,加深理解