Java的学习笔记(16)异常处理

简介: 异常处理01 Error和Exception异常 Exception三种异常:检查行异常、运行时异常、错误(错误不是异常ERROR)异常处理02 捕获和抛出异常5个关键字:try、catch、finally、throw、throwspackage com.exception;public class TEST { public static void main(String[] args) { int a = 1; int b = 0; try{ //try监控区域 System.out.

异常处理01 Error和Exception

异常 Exception

三种异常:检查行异常、运行时异常、错误(错误不是异常ERROR)

异常处理02 捕获和抛出异常

5个关键字:try、catch、finally、throw、throws

package com.exception;
public class TEST {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;
         try{   //try监控区域
            System.out.println(a/b);
        }catch (Error e){    //cath捕获异常
             System.out.println("程序出现异常,变量b不能为0");
         }catch (Exception e){    //cath捕获异常
             System.out.println("程序出现异常,变量b不能为0");
         }catch (Throwable e){    //cath捕获异常
             System.out.println("程序出现异常,变量b不能为0");
         }finally {     //处理善后工作,也可以不需要。
             System.out.println("finally");
         }
        //catch可以有多个
        //finally 可以不要finally ,假设是IO资源,这需要finally善后工作关闭
        //快捷键:  选中想要测试的内容, CTRL + Alt + T
    }
}
package com.exception;
public class TEST {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;
         try{   //try监控区域
             if (b==0){
                 throw new ArithmeticException();  //主动抛出异常
             }
            System.out.println(a/b);
        }catch (ArithmeticException e){    //catch捕获异常   catch( 想要捕获的异常类型 )
             System.out.println("程序出现异常,变量b不能为0");
         }finally {     //处理善后工作
             System.out.println("finally");
         }
    }
}
package com.exception;
public class TEST {
    public static void main(String[] args) {
        try {
            new TEST().test(1,0);
        } catch (ArithmeticException e) {
            e.printStackTrace();
        }
    }
    //假设这方法中,处理不了这个异常。方法上抛出异常。
    public  void test(int a, int b){
        if(b==0){
            throw new ArithmeticException();   //主动抛出异常,一般在方法中使用
        }
    }
}

异常处理03 自定义溢出和经验小结

自定义异常类步骤:

  1. 创建自定义异常类。
  2. 在方法中通过throw关键字抛出异常对象
  3. 如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否者在方法的声明中通过throws关键字指明抛出给方法调用者的异常,继续进行下一步操作。
  4. 在出现异常方法的调用者中捕获并处理异常。
package com.exception;
public class TEST {
    //可能会存在异常的方法
    static void test(int a) throws MyException{
        System.out.println("传递的参数为:"+a);
        if(a>10){
            throw new MyException(a);    //抛出
        }
        System.out.println("OK");
    }
    public static void main(String[] args) {
        try {
            test(11);
        }catch (MyException e){
            System.out.println("MyException=>"+e);
        }
    }
}
package com.exception;
//自定义的异常类,要继承Exception
public class MyException extends Exception{
        //传递数字>10
    private int detail;
    public MyException(int a){
        this.detail = a;
    }
    //toString  方法构建 快捷键  ALT+ INSERT
    @Override
    public String toString() {
        return "MyException{" +
                "detail=" + detail +
                '}';
    }
}

经验总结

  1. 处理运行时异常,采用逻辑去合理规避同时辅助try-catch处理
  2. 在多重catch块后面,可以加一个catch (Excetion) 来处理可能会被遗漏的异常
  3. 对于不明确的代码,也可以加上try-catch,处理异常 ,也有快捷键 ALT + ENTER
  4. 尽量去处理异常,切忌只是简单地调用printStackTrace() 去打印输出
  5. 具体如何处理异常,要根据不同的业务需求和异常类型去决定
  6. 尽量添加finally语句块去释放占用的资源
相关文章
|
5天前
|
Java 程序员 开发者
深入探索Java中的异常处理机制
【10月更文挑战第12天】 本文旨在全面解析Java的异常处理机制,从基本概念到高级技巧,为读者提供一个清晰的学习路径。我们将探讨try-catch-finally块的使用、throws关键字的作用以及自定义异常类的创建方法。此外,文章还将通过实际案例分析,展示如何有效利用Java异常处理来提高程序的鲁棒性和可维护性。无论是初学者还是经验丰富的开发者,都能在本文中找到有价值的信息和实用的建议。
|
11天前
|
Java 程序员 数据库连接
Java编程中的异常处理:从基础到进阶
【10月更文挑战第6天】在Java的世界中,异常处理是代码健壮性的守门人。它不仅防止程序因未预见的错误而崩溃,还提供了优雅地处理错误情况的机会。本文将带你了解Java异常处理的核心概念,探索try-catch-finally语句的奥秘,并深入异常类层次结构的内部。通过实际代码示例,我们将一起学习如何创建自定义异常,以及如何使用throws关键字和throw语句来管理异常。无论你是Java新手还是希望提升你的异常处理技能,这篇文章都将是你的指南针,指引你穿越异常处理的迷宫。
35 9
|
8天前
|
Java 数据库连接 UED
Java中的异常处理:从基础到高级
【10月更文挑战第9天】在Java的世界里,异常处理就像是生活中的急救箱,它帮助我们应对代码执行过程中可能出现的意外情况。本文将带你了解Java的异常机制,从基本的try-catch块开始,逐步深入到自定义异常类和异常链的使用,最后探讨如何优雅地处理异常,确保程序的健壮性和用户体验。
|
8天前
|
Java 开发者 UED
Java中的异常处理:从新手到专家
【10月更文挑战第9天】在Java的编程世界中,异常处理是每个开发者必须面对的挑战。本文将引导你从基础的异常理解到高级的处理技巧,通过具体代码示例,展示如何优雅地管理程序中可能出现的错误和异常情况。无论你是刚开始学习Java,还是希望提高你的异常处理能力,这篇文章都将为你提供宝贵的知识和技巧。
|
8天前
|
Java 程序员
Java中的异常处理:从新手到专家
【10月更文挑战第9天】在Java的世界中,异常处理就像是驾驶时的方向盘,掌握它,你就能驾驭代码的运行方向。本文将通过深入浅出的方式,带你了解Java异常处理的奥秘,从基本的try-catch语句到自定义异常类的创建,让你的代码更加健壮和易于维护。
8 2
|
9天前
|
安全 Java UED
Java中的异常处理:理解与实践
【10月更文挑战第8天】在Java的世界里,异常处理是维护代码健壮性的守护神。本文将带你深入探索Java的异常处理机制,从基础的try-catch语句到高级的自定义异常,再到最佳实践和性能考量,我们将一起学习如何优雅地处理程序中的错误和异常情况。准备好,让我们一起迎接挑战,确保你的Java代码既安全又高效!
|
12天前
|
Java 数据库连接 开发者
深入理解Java中的异常处理机制
本文旨在全面解析Java异常处理机制,从基础概念到高级应用,为读者提供一套完整的异常处理策略。通过实例演示,我们将揭示如何有效利用try-catch-finally语句,以及throw和throws关键字,来构建健壮的Java应用程序。此外,本文还将探讨自定义异常的创建与使用,以及如何通过合理的异常处理提升代码的可维护性和可读性。
|
12天前
|
Java UED
Java中的异常处理:从基础到进阶
【8月更文挑战第75天】在Java的世界里,异常处理是代码健壮性的守护神。本文不仅带你回顾异常处理的基本概念和语法,还会深入探讨如何优雅地管理错误和异常,确保你的应用程序即使在面对意外情况时也能保持冷静和稳定。准备好让你的Java技能更上一层楼了吗?让我们一起走进异常处理的世界,从简单的try-catch块到复杂的异常层级,再到自定义异常的创建,你将学会如何在Java中像专业人士一样处理异常。
|
5天前
|
Java 数据库连接
深入探索研究Java中的异常处理机制
【10月更文挑战第8天】
10 0
|
5天前
|
Java 开发者
Java中的异常处理机制:从基础到高级应用
本文深入探讨了Java的异常处理机制,从基本的try-catch结构出发,逐步解析finally、throw和throws关键字的用法。同时,文章详细解释了异常类层次结构和自定义异常的创建与使用,并通过实例展示了如何在实际开发中有效管理和处理异常。通过综合运用这些技巧,开发者可以编写出更加健壮、可维护的Java应用程序。