java常用API之异常类

 异常信息检查:

 其中包含了三个重要的信息,异常出现的位置,异常的类型,错误语句的提醒。

Exception有两种异常: 

1、RuntimeException(运行时异常):无需显式处理,都是RuntimeException类及其子类。

2、编译时异常:除RuntimeException之外的所有异常。不处理的话就无法通过编译。

处理异常的两种方法:

1、throws方式处理异常:

public void 方法() throws 异常类名{
}

throw抛出异常:主动抛出异常,下面的代码不执行。

    throw new RuntimeException("你犯了一个错误。");

面试题:throws和throw的区别

 ①throws写在方法的声明上,throw写在方法中。

②throws表示该方法存在哪些异常,throw表示在此处抛出一个异常(动作)。

③throws后面接异常的类型,throw后面接异常的对象。

2、try-catch(-finally):

try {
   int i = 1//0; // 把可能要出现的异常写在try里
} catch (Exception e) {  //异常类型  异常变量名
  e.printStackTrace();    //处理异常的方式
}    

        finally可有可无,无论代码有没有异常发生,finally都会执行。(一般用来执行关流操作)。finally执行过后try中的值才输出;如果finally中有return,则优先执行,有可能会影响try中的值,因为当程序执行到try{}语句中的return方法时,它会干这么一件事,将要返回的结果存储到一个临时栈中,然后程序不会立即返回,而是去执行finally{}中的程序。

public static void main(String[] args)  {
        System.out.println(show());
    }

    public static int show(){
        try {
            int i = 0 ;
            return i;
        } finally {
            int i = 2;
        }
    }

结果为0。

public static void main(String[] args)  {
        System.out.println(show());
    }

    public static int show(){
        try {
            int i = 0 ;
            return i;
        } finally {
            int i = 2;
            return i;
        }
    }

 答案为2。

*自定义异常类:

        写一个类 继承Exception 就是编译时异常
        写一个类 继承RuntionException 就是运行时异常

面试题:final、finally、finalize三者的区别?

final为常量关键字,而finally为异常关键字,finalize为object自带方法名。

一、final这个关键字在Java中代表不可改变的,可用来修饰类,方法,变量。

二、finally关键字用在异常处理中,用于处理异常后的清理工作,实际中一般用于关闭文件流,释放资源等操作。

三、这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的,它是在 Object 类中定义的,finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。(一般不用自己调用)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值