java异常详解解析和异常示例代码

本文深入探讨Java异常处理机制,解析异常捕获、处理流程,以及try、catch、finally的使用原则。通过实例演示异常分类与处理策略,帮助读者理解稳定与不稳定代码的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java异常简介:

Java异常是Java提供的一种识别及响应错误的一致性机制。

1.java异常的理解

在企业级系统中即使有再多的再优秀的工程师也无法避免在系统运行过程中出现不可预知的异常,如果不及时处理出现的异常就会是程序运行中断。在处理异常过程中我们我们需要解决3个问题
3.1哪里发生异常?
3.2谁来处理异常?
3.3如何处理异常?
这三个问题就是异常的核心部分,下面的内容将为大家捷信这些问题。

2. 哪里发生异常

异常捕获时需要分清稳定的代码和不稳定的代码。
什么是稳定代码? 比如 int a=10;
什么是不稳定代码?比如操作字符串可能会发生NullPointerException
操作数据库时会发生SQLException。
在异常处理中我们首先需要定位到异常会出现的位置,这样才可以正确的异常,之后对异常进行相应的处理。

3.谁来处理异常和如何处理异常

public class test {
    public static void main(String[] args) {
        String str=null;
        //定义常量不要写在try的代码块中,因为它属于稳定代码
        int length;
        //写在try代码块中的如果出现异常会被catch捕获
        try{
             length = str.length();
        }catch (Exception e){
            //catch中可以对捕获到的异常进行处理
            System.out.println("异常类型{}"+e);
             length=0;
        }finally {
            System.out.println("我被执行了");
        }
        System.out.println(length);

    }
}

上面的代码是一个简单的实例,从代码可以看出来我们需要把不稳定的代码(会出现异常的代码)放入到try代码块中,当执行str.length()方法时,会出现空指针异常(NullPointerException)之后代码走到catch代码块中,之后会执行代码块中的代码,finally的意义在于不管发不发生异常都会运行代码块中的代码。

下面是代码运行的结果

异常类型{}java.lang.NullPointerException
我被执行了
0

Process finished with exit code 0

4.异常的分类

异常分类
上图是异常的分类
Error: 是程序不可自行恢复的需要人工介入,比如服务器down机,断电…等等
Exception: 又分为checked(受检异常)和unchecked(非受检异常)
受检异常是程序在编译时就会报错的异常,而非受检异常是在程序运行期会出现的所以uncheck都继承RuntimeExcrption。

5.注意事项

5.1 finally不执行的原因:

  • 5.1.1 程序没进入try代码块
  • 5.1.2 在finally代码前面执行了 return。

5.2 不要再try代码块中写稳定代码,这样写没有任何意义。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值