JAVA异常分析

    java异常体系可分为两大类:一是错误(Error);二是异常(Exception).
    而异常也可分为运行时异常(非受检异常)和非运行时异常(受检异常);详情见下图:

异常结构体系图

JAVA异常处理的格式为:
try{
//可能出现异常的代码
}catch(异常的类型 变量){
//出现异常时执行的操作
}finally{
//异常的统一出口
}

publiuc void text(){、
 int a = 5;
 int b = 0;
try{    //当a除以b时,而除数不能为零,此时即会出现异常
   int result = a/b;
    }catch(ArithmeticException e){  //此异常为数学异常,如除数不能为零  
    System.out.println("出现异常");
    } catch(Exception e){  //一个try里可以拥有多个catch,但异常范围必须是从小到大,如此处Exception 为所有异常的父类,所必须写在后面
    System.out.println("出现异常");
    }
System.out.println(result );
}

运行时异常与非运行时异常:
1、运行时异常,catch中可以随意定义类型,程序运行时,会根据catch参数自动匹配。(如上述即为运行时异常)
2、非运行时异常,则catch中定义的异常,在try代码块中必须存在,如果没有类似异常存在,则不允许被定义。

finally用途:
异常的统一出口,不管是否产生异常,都必须执行其中的代码;finally中的代码必然执行,除非程序中途错误。

throw与throws用途:
1、Throws关键字主要在方法的声明上使用,表示方法中不处理异常,二交给调用处处理。实际上对于java程序来讲, 如果没有加入任何的异常处理,默认有jvm进行异常的处理操作

2、Throw关键字表示在程序中手动抛出一个异常,因此从异常处理机制上看,所有的异常一旦产生后,实际上抛出的就是一个异常的实例化对象, name此对象也可以有throw直接抛出

注意:运行时异常,在程序中捕捉并throw后,方法中不一定要声明throws,而非运行时异常,在代码快中throw后,必须在方法中声明throws抛出异常

public class Priter{
public static void main(String[] args) {
try{  //而在此处则需扑捉异常,如果不扑捉,则会交给java虚拟机处理
 Priter pr = new Priter();
       pr.text();
}catch(ArithmeticException e){
    e.printStackTrace();  
}

}
public void text() throws ArithmeticException{ //此处不扑捉异常,利用throws掏出异常
 int a = 5;
 int b = 0;
 int result = a/b;
System.out.println(result );
}
}

异常处理规则:
1.try语句不能单独存在,可以和catch、finally组成的try…catch、try…catch…finally、try…finally三种结构,catch语句可以有一个或者多个,但是try、catch、finally不能单独存在
2.try、catch、finally三个代码块中的语句变量独立存在,不能相互访问

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值