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语句块去释放占用的资源
相关文章
|
1月前
|
Java 程序员
Java 异常处理与正则表达式详解,实例演练及最佳实践
在 Java 代码执行期间,可能会发生各种错误,包括程序员编码错误、用户输入错误以及其他不可预料的状况。 当错误发生时,Java 通常会停止并生成错误消息,这个过程称为抛出异常。 try...catch 语句 try 语句允许您定义一段代码块,并在其中测试是否发生错误。 catch 语句允许您定义一段代码块,当 try 块中发生错误时执行该代码块。 try 和 catch 关键字成对使用,语法如下:
42 0
|
1月前
|
Java 程序员
Java中的异常处理机制
【2月更文挑战第22天】在Java编程中,异常处理是一个重要的概念。它允许程序员在程序执行过程中遇到错误时,对错误进行处理,而不是让程序崩溃。本文将介绍Java中的异常处理机制,包括异常的分类、如何捕获和处理异常以及自定义异常等内容。
18 1
|
1月前
|
Java 程序员 索引
Java中的异常处理:理解、实践与最佳实践
【2月更文挑战第26天】在Java编程中,异常处理是一个重要的概念。它不仅帮助我们在程序出错时提供有关错误的详细信息,而且还允许我们以一种结构化的方式来处理这些错误。本文将深入探讨Java中的异常处理,包括如何创建自定义异常,如何使用try-catch-finally语句块,以及如何在实际编程中应用最佳实践。
27 3
|
1月前
|
Java UED
Java中的异常处理:捕获、声明与抛出
Java中的异常处理:捕获、声明与抛出
56 0
|
1月前
|
Java
Java中的异常处理
Java中的异常处理
14 0
|
1月前
|
Java 编译器 程序员
Java中的异常处理:从基础到高级
【2月更文挑战第24天】本文将深入探讨Java中的异常处理,从基础的try-catch块到高级的异常处理策略。我们将了解如何使用Java的异常处理机制来提高代码的健壮性和可维护性,以及如何处理运行时和编译时的异常。
22 0
|
1天前
|
Java 数据库连接
深入理解Java异常处理机制
【4月更文挑战第24天】本文将探讨Java中的异常处理机制,包括异常的概念、分类、捕获和抛出等方面。通过深入了解异常处理机制,可以帮助我们编写更加健壮的程序,提高代码的可读性和可维护性。
|
1天前
|
Java 编译器 程序员
【Java基础】细说异常处理
【Java基础】细说异常处理
5 0
|
18天前
|
Java
Java中的throw和throws:异常处理详解
Java中的throw和throws:异常处理详解
21 0
|
25天前
|
Java 程序员 开发者
深入理解Java异常处理机制
在Java编程中,异常处理是确保程序健壮性与稳定性的重要组成部分。本文旨在深度剖析Java异常处理机制的核心概念、结构及其实际应用策略,帮助开发者更好地理解并运用异常处理来优化程序设计。我们将从Java异常体系结构入手,探讨try-catch-finally语句块的执行流程,分析自定义异常的必要性与实现方式,并通过实例演示如何有效地管理和处理异常情况。
23 3