0
点赞
收藏
分享

微信扫一扫

arcgis for js实现popupTemplate弹窗field名称和值转义

兵部尚输 2024-11-18 阅读 8
java异常

目录

定义

Java标准裤内建了一些通用的异常,这些类以Throwable为顶层父类。
Throwable又派生出Error类和Exception类。

错误(Error)类以及他的子类的实例,代表了JVM本身的错误错误不能被程序员通过代码处理,Error很少出现。因此,程序员应该关注Exception为父类的分支下的各种异常类。
异常(Exception)是程序编译运行时出现的错误或异常情况,它表示程序遇到了一种在正常情况下无法预料或处理的情况。在编程中,异常处理是一种机制,用于处理程序执行过程中可能出现的错误,以防止程序崩溃并提供错误处理的途径。
❗️❗️❗️语法错误不算在异常体系中,语法错误是自己的水平问题引起的。❗️❗️❗️
在这里插入图片描述

分类

编译时异常

  • 编译阶段就要处理的异常,提醒可能出现的问题,在编辑代码过程中会标红警告,必须处理否则无法运行。
  • 常见情况:
    • 类找不到的异常:ClassNotFoundException
    • 文件找不到的异常:FileNotFoundException
    • 没有匹配的方法异常:NoSuchMethodException
    • 输入输出流异常: IOException
    • 数据库操作异常:SQLException

运行时异常

  • 程序运行过程中出现的异常,考虑不周,出现的一些问题。
  • 常见情况:
    • 数组索引越界异常: ArrayIndexOutOfBoundsException
    • 空指针异常 : NullPointerException
    • 类型转换异常:ClassCastException
    • 迭代器遍历没有此元素异常:NoSuchElementException
    • 除0发生算数异常:ArithmeticException

处理机制

在编写代码处理异常时,对于检查异常,有2种不同的处理方式:使用try...catch...finally语句块处理它。或者,在函数签名中使用throws 声明交给函数调用者caller去解决。

捕获异常

在这里插入图片描述

try {
    //逻辑代码
   }catch(exception e){
    //异常处理代码
} finally{
    //一定要执行的代码
}
try {
   //逻辑代码
   }catch(exception e){
   //异常处理代码
}
 
try{
   //逻辑代码
}finally{
   //一定要执行的代码
}
  • 一个try至少要有一个catch块,否则, 至少要有1个finally块。但是finally不是用来处理异常的,finally不会捕获异常。finally主要做一些清理工作,如流的关闭,数据库连接的关闭等
  • finally仅在以下几种情况不执行:在这里插入图片描述
  • try块中的局部变量和catch块中的局部变量(包括异常变量),以及finally中的局部变量,他们之间不可共享使用。
  • java中,当一个函数的某条语句发生异常时,这条语句的后面的语句不会再执行,它失去了焦点。执行流跳转到最近的匹配的异常处理catch代码块去执行,异常被处理完后,执行流会接着在处理了这个异常的catch代码块后面接着执行

抛出异常

在这里插入图片描述

如果一个方法内部的代码会抛出检查异常(checked exception),而方法自己又没有完全处理掉,则javac保证你必须在方法的签名上使用throws关键字声明这些可能抛出的异常,否则编译不通过。
throws是另一种处理异常的方式,它不同于try...catch...finallythrows仅仅是将函数中可能出现的异常向调用者声明,而自己则不具体处理。采取这种异常处理的原因可能是:方法本身不知道如何处理这样的异常,或者说让调用者处理更好,调用者需要为可能发生的异常负责。

  • throw(一定抛出)
    在 Java 中,当程序发生异常时,可以使用 throw 关键字来手动抛出异常对象。throw 语句的格式为:
    throw new 异常类名称(构造函数参数);
    其中,异常类名称就是已定义的异常类,构造函数参数是为异常类的构造函数提供的参数。它可以为代码中的某个条件设置一个异常,并在需要的位置进行捕获和处理。
//例子
public void checkAge(int age) {
   if (age < 0) {
     throw new IllegalArgumentException("年龄不能为负数");
   }
}
  • throws(提醒,可能抛出)
    throws关键字用于指定方法可能抛出的异常。它标识了哪些异常可以传递到方法的调用者,需要调用者进行相应的处理;当不希望在当前方法中捕获异常,并且希望将异常传递给上层调用者来处理时,可以使用throws关键字。其格式如下:
修饰符 返回类型 方法名(参数列表) throws 异常列表 {
    // 方法体
}
//例子
import java.io.FileOutputStream;
import java.io.IOException;

public class fileoutputstream{
    public static void main(String[] args) throws IOException {
        FileOutputStream in = new FileOutputStream(".\\src\\myIO\\test.txt");
        String str = "abcde";
        in.write(str.getBytes("UTF-8"));
        // in.write(str.getBytes(),0,2);
        in.close();
    }
}

参考博客

一次搞懂Java异常处理(超详细!!!)!
Java中的异常有哪几类?
Java基础语法(十三):throw和throws

举报

相关推荐

0 条评论