【Java】异常与捕获

目录

 

异常体系

非受查异常

受查异常

异常处理格式

Throws

Throw

面试题:


异常体系

当程序出现错误时,能够最大化的减少损失的一种保护手段

 

  • Error(栈溢出):Error类描述Java运行时内部错误与资源耗尽错误,应用程序不抛出此类异常,这种内部错误一旦出现,除了告知用户,并且使程序安全终止。
  • RuntimeException(运行时异常):由于程序错误导致的异常
  • IOException:程序本身没有问题,但由于出现I/O问题导致的异常

非受查异常

继承于Error与RuntmeException类的所有异常子类称为非受查异常(不强制用户进行异常处理)

受查异常

Exception以及IOException子类属于受查异常(强制用户进行异常处理)

异常处理格式

为了保证程序出现异常后也能正常执行下去,需要进行异常处理

语法:

try{
    //有可能出现异常的语句
}[catch(异常类 对象).....]{
    //出现异常后的解决方案
}[finally]{
    //异常出口,无论是否产生异常,都会执行finally代码块
    //即便try/catch中存在return语句,也会在return之前执行finally代码块
}

搭配方式:

  • try ... catch ..
  • try ... finally..
  • try ... catch ... finally ..

Throws

用在方法上,明确表示此方法可能会产生异常,并不处理,返回给调用方法处理(JVM)

public class Test{
    public static void main(String[] args) throws Exception{
            System.out.println(calculate(10, 0));
    }
    public static int calculate(int x,int y){
        return  x/y;
    }
}

Throw

用在方法中,异常对象由用户产生,一般与自定义异常类搭配使用

 

面试题:

请解释Exception与RuntimeException的区别,并列举出几个常见的RuntimeException

  • 从关系来讲,Exception是RuntimeException的父类
  • Exception是受查异常,强制用户进行异常处理,受查异常在编译的时候就会报错。
  • RuntimeException是非受查异常,不强制用户进行异常处理,是在运行时报错

常见的RuntimeException

  • 空指针异常
  • 类型转换异常
  • 数值转换异常
  • 除0异常

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值