JAVA中的异常使用

        异常是程序开发中的避不开的一个问题,特别是在大型应用的开发中,为了使程序能够保持稳定的运行,即使出错的时候,也能方便开发人员的根据错误信息快速定位出错位置,这需要我们必须熟悉异常的基本知识。

Java异常中的关键字:

        throw、throws、try、catch、finally。下面一段代码简单介绍这几个关键字的应用场景

/*如果方法不进行异常处理,一定要用 throws 抛出*/
public static int div(int _x, int _y) throws Exception{
    int result = 0;
    try{
        // 可能出异常的代码块
    }catch(Exception e){
        // 捕获异常并处理的代码块
        e.printStackTrace(); // 打印异常信息
        throw new Exception("异常A"); // 抛出一个自定义异常
    }finally {
        // 不管是否有异常都要执行的代码块
        return result;
    }
}

    throw与throws的区别:

        throw用于在一个方法内部抛出一个自己创建的异常,throws则是用在方法头的后面。用于告知该方法可能会抛出哪些异常给上层应用,注意此时上层应用必须在写代码的时候添加处理该异常的方法。

一个标准的基础Java异常处理案例:

class MyMath{
   
/*如果方法不进行异常处理,一定要用 throws 抛出*/
   
public staticint div(int _x, int _y) throws Exception{
       
int result = 0;
       
System.out.println("【开始】进行除法计算");
       
// 方式一
//        try{
//            result = _x / _y;
//        }catch (Exception e){
//            throw e;
//        }finally {
//            System.out.println("
【结束】除法计算完毕");
//        }

        //
方式二(简写)
       
try{
           
result = _x / _y;
       
}finally {
           
System.out.println("【结束】除法计算完毕");
       
}
       
return result;
   
}
}

public class Main {
   
public staticvoid main(String[] args) {
       
try {
           
System.out.println(MyMath.div(10,0));
       
} catch (Exception e) {
           
e.printStackTrace();
       
}
    }
}

    结果:

    

Exception与RuntimeException的区别:

    RuntimeException的类继承关系:

        java.lang.Object

                java.lang.Throwable

                        java.lang.Exception

                                java.lang.RuntimeException

    区别概述:

        Exception 是 RuntimeException 的父类(由上面关系知),使用 Exception 定义的异常都要去必须使用异常处理。
        RuntimeException 可以由用户选择性的来进行异常处理。

    常见的 RuntimeException 有: 

        ClassCastException:            类型转换异常
        NoSuchElementException:   没有这个元素
        NullPointerException:     空指针异常

自定义异常:

      直接继承 Exception 或者是 RuntimeException 即可。不过注意命名的时候后面一定要加上 Exception 这样做更加规范。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值