什么是异常?如何处理异常?

41 篇文章 3 订阅
订阅专栏
27 篇文章 1 订阅
订阅专栏

目标:

  1. 明确什么是异常 (重点)
  2. 能辨识出常见的异常及其含义。(熟悉+)
  3. 理解异常产生的原理 (了解)
  4. 能处理异常 (重点)
  5. 能够自定义异常类型 (熟悉)

问题引入

1、编写代码如下:
在这里插入图片描述
2、运行测试
在这里插入图片描述
在这里插入图片描述
3、新手误区:

  • 容易想当然:认为所有用户都会按照程序员的思路来操作;
  • 容易**“我认为”**:用户的需求或设计在别人看来就是合理的,程序员不是产品经理,不要擅自改动;

4、异常产生的过程
在这里插入图片描述
所以x/y这里变成了一个new的操作
在这里插入图片描述
在这里插入图片描述
5、为了避免JVM接收到异常对象,可以选择在 创建异常对象——>虚拟机 过程中拦截,这就引入了处理异常。

一、异常的概念

什么是异常呢?

异常是在程序中导致程序中断运行的一种指令流

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。

比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error ;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出java.lang.ArithmeticException 的异常。

异常发生的原因有很多,通常包含以下几大类:

  • 用户输入了非法数据。
  • 要打开的文件不存在。
  • 网络通信时连接中断,或者JVM内存溢出。

这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。

要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:

  • 检查性异常: 最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
  • 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
  • **错误:**错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

通过代码来理解:

public class Demo_1 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个数字:");
        int x = input.nextInt();
        System.out.println("请再输入一个数字");
        int y = input.nextInt();
        System.out.println(x / y);
        System.out.println("运行完毕!");
    }
}

运行结果:
(1)在这里插入图片描述
(2)
在这里插入图片描述

以上的代码在“x/y;”位置处产生了异常,一旦产生异常之后,异常之后的语句将不再执行了,所以现在的程序并没有正确的执行完毕之后就退出了。

那么,为了保证程序出现异常之后仍然可以正确的执行完毕,所以要采用异常的处理机制。

二、异常的体系结构

1、异常指的是Exception , Exception类, 在Java中存在一个父类Throwable(可能的抛出) Throwable存在两个子类:

  • 1.Error:表示的是错误,是JVM发出的错误操作,只能尽量避免,无法用代码处理。(比如内存过小)

  • 2.Exception:一般表示所有程序中的错误,所以一般在程序中将进行try…catch的处理。
    在这里插入图片描述
    下面将详细讲述这些异常之间的区别与联系:

  • ErrorError类对象由 Java 虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。例如,Java虚拟机运行错误(Virtual
    MachineError
    ),当JVM不再有继续执行操作所需的内存资源时,将出现
    OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止;还有发生在虚拟机试图执行应用时,如类定义错误(NoClassDefFoundError)、链接错误(LinkageError)。这些错误是不可查的,因为它们在应用程序的控制和处理能力之
    外,而且绝大多数是程序运行时不允许出现的状况。对于设计合理的应用程序来说,即使确实发生了错误,本质上也不应该试图去处理它所引起的异常状况。在Java中,错误通常是使用Error的子类描述。

  • Exception:在Exception分支中有一个重要的子类RuntimeException(运行时异常),该类型的异常自动为你所编写的程序定义ArrayIndexOutOfBoundsException(数组下标越界)、NullPointerException(空指针异常)、ArithmeticException(算术异常)、MissingResourceException(丢失资源)、ClassNotFoundException(找不到类)等异常,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生;而RuntimeException之外的异常我们统称为非运行时异常,类型上属于Exception类及其子类,从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOExceptionSQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。

注意
ErrorException的区别:
(1)Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常时,Java虚拟机(JVM)一般会选择终止线程;
(2)Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能的去处理这些异常。

2、多异常捕获的注意点:

  • 1、 捕获更粗的异常不能放在捕获更细的异常之前。
  • 2、 如果为了方便,则可以将所有的异常都使用Exception进行捕获

3、RuntimeException:运行时异常(非受检异常)。参数有可能引发错误时,发出的异常不会有提示,就直接崩溃。

  • 受检异常:在正确的程序运行过程中,很容易出现的、情理可容的异常状况,在一定程度上这种异常的发生是可以预测的,并且一旦发生该种异常,就必须采取某种方式进行处理。

提示
除了RuntimeException及其子类以外,其他的Exception类及其子类都属于受检异常,当程序中可能出现这类异常,要么使用try-catch语句 进行捕获,要么用throws子句 抛出,否则编译无法通过。

  • 非受检异常:包括RuntimeException及其子类Error

提示
非受检异常为编译器不要求强制处理的异常,受检异常则是编译器要求必须处置的异常。
在这里插入图片描述

三、异常处理的基本语法

(一)try - catch

如果要想对异常进行处理,则必须采用标准的处理格式,处理格式语法如下:

处理格式

try{
    // 有可能发生异常的代码段 
}catch(异常类型1 对象名1){ 
    // 异常的处理操作 
}catch(异常类型2 对象名2){
    // 异常的处理操作 } ... 
finally{ 
    // 异常的统一出口 
}

注意啦:

在进行异常的处理之后,在异常的处理格式中还有一个finally语句,那么此语句将作为异常的统一出口,不管是否产生了异常,最终都要执行此段代码。(finally不执行情况电脑没电、关机、软件关闭、程序从内存中消失、finally之前出现exit退出其余情况finally都会执行

try+catch的处理流程

  • 1、 一旦产生异常,则系统会自动产生一个异常类实例化对象
  • 2、 那么,此时如果异常发生在try语句,则会自动找到匹配的catch语句执行,如果没有在try语句中,则会将异常抛出(中断).
  • 3、 所有的catch根据方法的参数匹配异常类的实例化对象,如果匹配成功,则表示由此catch进行处理。
    在这里插入图片描述
使用异常的效果:
1、不捕获异常:

在这里插入图片描述

2、捕获异常

在这里插入图片描述

处理多异常的格式 1
import java.util.InputMismatchException;
import java.util.Scanner;

/**
 * 处理多异常的格式 1
 */
public class Demo_2 {
    public static void main(String[] args){
        haha();
        System.out.println("程序执行完毕 , 正常结束");
    }

    private static void haha() {
        try {
            Scanner input = new Scanner(System.in);
            System.out.println("请数字输入一个");
            int x = input.nextInt();
            System.out.println("请再输入一个数字");
            int y = input.nextInt();
            System.out.println(x / y);
            System.out.println("处理完毕");
        }catch(InputMismatchException e){ //具体到将会发生怎么类型的异常
            System.out.println("必须输入数字啊, 帅哥");
        }catch(ArithmeticException e){
            System.out.println("除数不能为0啊 , 帅哥");
        }
    }
}

运行结果:
在这里插入图片描述在这里插入图片描述

处理多异常的格式 2(了解)

(将异常合并起来,了解即可)

import java.util.InputMismatchException;
import java.util.Scanner;

/**
 * 处理多异常的格式 2   了解
 */
public class Demo_3 {
    public static void main(String[] args){

        haha();
        System.out.println("程序执行完毕 , 正常结束");
    }

    private static void haha() {
        try {
            Scanner input = new Scanner(System.in);
            System.out.println("请输入一个数字");
            int x = input.nextInt();
            System.out.println("请再输入一个数字");
            int y = input.nextInt();
            System.out.println(x / y);
            System.out.println("处理完毕");
        }catch(InputMismatchException | ArithmeticException e){
            System.out.println("输入有误");
        }
    }
}

运行结果:
在这里插入图片描述

处理多异常的格式 3(常用)
import java.util.Scanner;

/**
 * 处理多异常的格式 3    常用
 */
public class Demo_4 {
    public static void main(String[] args){
        haha();
        System.out.println("程序执行完毕 , 正常结束");
    }

    private static void haha() {
        try {
            Scanner input = new Scanner(System.in);
            System.out.println("请输入一个数字");
            int x = input.nextInt();
            System.out.println("请再输入一个数字");
            int y = input.nextInt();
            System.out.println(x / y);
            System.out.println("处理完毕");
        }catch(Exception e){//多态 不管什么类型异常,都用Exception类。
            System.out.println("输入有误");
        }finally {
            //必然执行的异常统一处理出口
            //无论是否发生异常, finally必然执行.
            System.out.println("213123");
        }
    }
}

运行结果:
在这里插入图片描述
在这里插入图片描述

小结

被捕获异常后进行处理,程序会继续向下正常执行,而不会返回给main的调用者JVM中中断运行。

finally常见面试问题

考点:finally语句必然执行 和 return返回值的情况

1.finally在某种情况下是否会执行呢?

答:finally不执行情况电脑没电、关机、软件关闭、程序从内存中消失、finally之前出现exit退出其余情况finally都会执行

2.try-catch-finally 中哪个部分可以省略?

答: catch和finally可以省略其中一个 , catch和finally不能同时省略

注意:格式上允许省略catch块, 但是发生异常时就不会捕获异常了,我们在开发中也不会这样去写代码。

问题:try-catch-finally 中,如果 catch 中有 return 了,finally 还会执行吗?

答:finally中的代码会执行

详解:执行流程:

  • 1.先计算返回值, 并将返回值存储起来, 等待返回;
  • 2.执行finally代码块;
  • 3.将之前存储的返回值, 返回出去。

需注意:

  • 返回值是在finally运算之前就确定了,并且缓存了,不管finally对该值(非引用数据类型)做任何的改变,返回的值都不会改变
  • finally代码中不建议包含return,因为程序会在上述的流程中提前退出,也就是说返回的值不是try或 catch中的值
  • 如果在try或catch中停止了JVM,则finally不会执行.例如停电…, 或通过如下代码退出 JVM:System.exit(0);

finally举例1:(即使return,在准备返回值与跳出函数之间,仍会执行finally中的语句)
代码:在这里插入图片描述
运行结果:
在这里插入图片描述

finally举例2:(引用数据类型和非引用数据类型的区别)
代码:(引用数据类型)
在这里插入图片描述
运行结果:
在这里插入图片描述
从结果可看出:由于 返回值是引用数据类型
,在return之前准备好p(将引用地址进行备份),但是finally中通过引用数据类型的地址,修改了具体的值,所以还是显示的最终结果会更改属性值为28;

内存分析:
在这里插入图片描述
代码:(非引用数据类型)运行结果:
在这里插入图片描述
内存分析:
在这里插入图片描述

finally举例3 :exit()退出[表明终止后面的代码],不执行finally 在这里插入图片描述
这部分代码因为除数不能为0,所以会抛出异常,进入到catch{}里面,在catch里面有一行代码 System.exit(0); 这一行代码的意思就是强制退出程序,因此finally不会执行

  • 退出代码:System.exit( 0)可以输入0.1.2.3 0表示正常退出 剩下是非正常退出。

我之前也写了一篇有关 关于 finally 常考的面试题 感兴趣的伙伴们可以点击阅读哟!

(二)throws

1.throws 概念

在程序中异常的基本处理已经掌握了,但是随异常一起的还有一个称为throws关键字,此关键字主要方法的声明上使用,表示方法中不处理异常,而交给调用处处理。

如果一个方法可以导致一个异常但不处理它,它必须指定这种行为以使方法的调用者可以保护它们自己而不发生异常。要做到这点,我们可以在方法声明中包含一个throws子句一个throws子句列举了一个方法可能引发的所有异常类型。这对于除了Error或RuntimeException及它们子类以外类型的所有异常是必要的。一个方法可以引发的所有其他类型的异常必须在throws子句中声明,否则会导致编译错误。

格式
返回值 方法名称()throws Exception{ 
 
}

IDEA的快捷小技巧之一:若代码标红提示,想查看具体什么问题,则在标红后按住alt + 回车(enter)
在这里插入图片描述

2.案例

Exception 是该方法可能引发的所有的异常,也可以是异常列表,中间以逗号隔开。
例如:

class TestThrows{
    static void throw1(){
        System.out.println("Inside throw1 . ");
        throw new IllegalAccessException("demo");
    }
    public static void main(String[] args){
        throw1();
    }
}

上述例子中有两个地方存在错误,你能看出来吗?

该例子中存在两个错误,首先,throw1()方法不想处理所导致的异常,因而它必须声明throws子句来列举可能引发的异常即IllegalAccessException;其次,main()方法必须定义try-catch语句来捕获该异常。

正确例子如下:

复制代码
class TestThrows{
    static void throw1() throws IllegalAccessException {
        System.out.println("Inside throw1 . ");
        throw new IllegalAccessException("demo");//人为抛出异常
    }
    public static void main(String[] args){
        try {
            throw1();
        }catch(IllegalAccessException e ){
            System.out.println("Caught " + e);
        }
    }
}

3.throws抛出异常的规则

  • 如果是非受检查异常,即Error、RuntimeException或它们的子类 ,那么可以不使用throws关键字来声明要抛出的异常,编译仍能顺利通过,但在运行时会被系统抛出。
  • 必须声明方法可抛出的任何受检异常。即如果一个方法可能出现受可查异常,要么用try-catch语句捕获,要么用throws子句声明将它抛出,否则会导致编译错误
  • 仅当抛出了异常,该方法的调用者才必须处理或者重新抛出该异常。当方法的调用者无力处理该异常的时候,应该继续抛出,而不是囫囵吞枣。
  • 调用方法必须遵循任何可查异常的处理和声明规则。若覆盖一个方法,则不能声明与覆盖方法不同的异常。声明的任何异常必须是被覆盖方法所声明异常的同类或子类。

4.什么时候用throws / try-catch

如果是因为传入的参数 导致异常的发生,则可以通过throws抛出异常。通常是谁调用谁处理;

如果是在此方法中调用时,可以使用try-catch处理异常,并使程序正常运行;

1,观察下面的函数,只有当传入的参数错误时,程序才会出错;
在这里插入图片描述
2,这时可以选择,谁调用谁处理的策略;
在这里插入图片描述
3,如何处理
在这里插入图片描述

throw

1.throw 概念

throw关键字表示在程序中人为的抛出一个异常,因为从异常处理机制来看,所有的异常一旦产生之后,实际上抛出的就是一个异常类的实例化对象,那么此对象也可以由throw直接抛出。(真正应用的时候,自己造异常还是比较麻烦的,之接加判断也可以出现相同效果。所以用的比较少)

2.实例

1,回顾以前编写的函数
在这里插入图片描述
2,所以在发生异常时,需要告诉调用函数,发生了什么问题,而不是自己默默处理
在这里插入图片描述
3,运行效果
在这里插入图片描述

throw 和 throws 面试题

对面试题感兴趣不妨look throw 和 throws 的区别、及处理方式?

(三)自定义异常(了解)

  • 编写一个类, 继承Exception,并重写一参构造方法 即可完成自定义受检异常类型。
  • 编写一个类, 继承RuntimeExcepion,并重写一参构造方法 即可完成自定义运行时异常类型(非受检异常类型)。

例如:

class MyException extends Exception{ // 继承Exception,表示一个自定义异常类 
    public MyException(String msg){ 
        super(msg) ; // 调用Exception中有一个参数的构造 
    } 
}

自定义异常可以做很多事情, 例如:

class MyException extends Exception{ 
    public MyException(String msg){ 
        super(msg) ; //在这里给维护人员发短信或邮件, 告知程序出现了BUG。 
    } 
}

非受检异常(运行时异常)

1,设计自定义的运行时异常类
在这里插入图片描述
2,抛出自定义的异常
在这里插入图片描述
3,运行效果
在这里插入图片描述

受检异常

1,自定义受检异常
在这里插入图片描述
2,发现标红
在这里插入图片描述
3,抛出异常(受检查的异常必须明确抛出,运行时异常可以不抛出
在这里插入图片描述
4,测试效果
在这里插入图片描述
5,解决方法
在这里插入图片描述
6,不解决,继续执行
在这里插入图片描述

RuntimeExcepion与Exception的区别

注意观察如下方法的源码:

Integer类: public static int parseInt(String text)throws NumberFormatException

此方法抛出了异常, 但是使用时却不需要进行try…catch捕获处理,

原因: 因为NumberFormatException并不是Exception的直接子类,而是RuntimeException的子类,只要是RuntimeException的子类,则表示程序在操作的时候可以不必使用try…catch进行处理,如果有异常发生,则由JVM进行处理。当然,也可以通过try…catch处理。

四、总结

在这里插入图片描述在这里插入图片描述

Java中什么是异常
小贺想改变
10-01 1331
知晓在Java当中什么是异常,以及简单介绍了一些常见的运行时异常
在python中什么是异常?在程序中为什么抛异常?抛异常的几种方式
也许会有_hui的博客
04-26 2526
目录 1.什么是异常? 2.在程序中为什么抛异常? 3.抛异常的几种方式 4.异常的好处 5.爬虫过程中经常出现的异常 1.什么是异常异常就是程序执行过程中发生的错误 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。 一般情况下,在Python无法正常处理程序时就会发生一个异常异常是Python对象,表示一个错误。 当Python脚本发生异常时我...
关于异常处理的知识整理
continueLR的博客
06-26 1288
1.什么是异常? 程序在执行过程中不正常的情况称为异常,以类和对象的形势存在,可以通过异常类,创建和实例化异常对象。发生异常时JVM会new异常对象。 Java语言是很完善的语言,提供了异常处理机制,当程序在执行过程中出现异常而终止,java会把异常信息打印输出在控制台,以供参考。 存在的意义:增强java程序的健壮性。 2.异常继承结构 父类:java.lang.Throwable 子类:Error(错误类),Excepition(异常类) Excepition有两个分支: 一个是.
如何处理异常
脚踏实地
01-30 483
参考链接 通常异常方法 // 写一句注释跳过异常 try { throw new IOException("Made up"); } catch (IOException e) { // 跳过 } // 记到日志里,继续处理 try { throw new IOException("Made up"); } catch (IOException e) { log.e...
异常到底该怎么处理
weixin_45701550的博客
05-16 1218
1.什么是异常 异常是大部分编程语言对程序运行“异常情况“”的一种处理机制,因为这种机制大大降低了编写和维护可靠程序的门槛。如今,异常处理机制已经成为现代编程语言的标配。 2.异常的分类 在java编程语言中,异常可以分为两种,运行时异常和编译时异常。对于运行时异常,在编写代码的时候,可以不用主动去捕获。而对于编译时异常,编译器会在对代码进行编译时,检查被抛出的异常是否被处理(处理方式主要两种:捕获和在函数定义中声明),否则会产生编译错误。 (1).受检异常 编译时异常因为会受到编译器的检查,保证异常处理
什么是异常?
weixin_30432579的博客
03-26 593
java异常也是一种类. 异常: 不正常的情况 异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。 常见的异常: ArrayIndexOutOfBoundsException 数组索引越界异常 StringIndexOutOfBoundsException 字符串索引越界异常 ArithmeticException 除数不能为0的异常 N...
什么是异常
zbh17378211664的博客
07-07 277
异常
Java中的异常处理机制是什么?
最新发布
你好,欢迎来到我的个人技术博客!我是一个还有头发的程序猿,一名热衷于探索编程奥秘的程序员。在这个充满无限可能的数字时代,我致力于通过代码编织梦想,解决问题,不断追求技术的极致。 自从踏上编程之旅以来,我涉足了多个领域,包括但不限于Web开发、移动应用开发
09-13 1123
异常处理是一种编程技术,用于检测和处理程序运行期间发生的错误。在Java中,异常处理机制主要包括异常的抛出、捕获、处理和传递等环节。通过适当的异常处理,可以提高程序的健壮性,确保在遇到错误时程序能够优雅地恢复或终止。除了使用Java内置的异常类外,还可以根据需要定义自定义异常类,以更精确地描述程序中发生的错误。37 }811 }12}1316 try {21 }22 }23}Java中的异常处理机制是确保程序健壮性和用户友好的重要工具。
Java如何将处理异常之后的程序能够从抛出异常的地点向下执行?
08-26
Java异常处理和继续执行 Java是一种支持面向对象编程的高级语言,广泛应用于Android应用开发、Web应用开发、桌面应用开发等领域。Java语言中异常处理机制是非常重要的,异常处理机制可以帮助开发者处理程序中的错误...
异常处理的学习的目的到底是什么?
没完没了就好的博客
07-20 1512
异常处理目标什么是异常异常体系结构 目标 明确什么是异常 (重点) 能辨识出常见的异常及其含义。 (熟悉+) 理解异常产生的原理 (了解) 能处理异常 (重点) 能够自定义异常类型 (熟悉) 什么是异常异常是在程序中导致程序中断运行的一种指令流 例如,现在有如下的操作代码: public class ExceptionDemo01{ public static void main(String argsp[]){ int i = 10 ; int j = 0
什么是异常处理
phperHe
10-11 2580
异常处理,英文名为exceptional handling。     是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况,即超出程序正常执行流程的某些特殊条件.     异常处理类 Exception     抛出异常的方式 throw new Exception(['message'] , ['errorNum'] , ['']) 抛出捕获异常 try
什么是异常?异常的详细介绍
geist_的博客
09-01 1314
异常的详细介绍已经个人的小经验
如何处理异常
执着之道
12-28 227
当我们捕获到一个Exception时,如下 [code]void init() { try{ loadFile(); } catch(Exception e) {} } [/code] 那么我们首先应该分析,我能不能处理这个异常, 假如我能够处理,那么我就处理,并且记录日志。 假如我不能处理,那么应该继续向上抛出。 尽量使用u...
Java异常详解
felix
08-19 266
1、finalfinallyfinalize 的区别? ● final:用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,被其修饰的类不可继承。 ● finally异常处理语句结构的一部分,表示总是执行。 ● finalize:Object 类的一个方法,所以Java对象都有这个方法,当某Java对象没有更多的引用指向的时候,会被垃圾回收器回收,该对象被回收之前,由垃圾回收器来负责调用此方法,通常在该方法中进行回收前的准备工作。该方法更像是一个对象生命周期的临终方法,当该方法被系统调用则代表该
什么是异常
dsy__的博客
01-10 297
继承Throwable继承Exception继承RuntimeException一般会选择继承Exception 和 RuntimeException ,如果不要求调用者一定要处理抛出的异常,就继承RuntimeException。String sex;return sex;if("男" . equals(sex) || "女" . equals(sex)) {} else {throw new GendorException("性别必须是男或者女");
什么是异常?简述Java异常处理机制。
06-11
异常是在程序运行时出现的错误或意外情况,它可以导致程序的崩溃或不正常的行为。Java异常处理机制可以让程序在出现异常时不崩溃,而是以一种良好的方式进行处理Java异常处理机制包括三个部分:try块、catch块和finally块。try块中包含可能会抛出异常的代码,catch块用于捕获并处理异常finally块中的代码无论是否发生异常都会被执行。 当程序执行到try块中的代码时,如果发生异常,就会跳转到与之对应的catch块中进行处理。catch块可以根据异常类型进行区分处理。如果没有合适的catch块来处理异常,则异常会被抛出,由上层调用者处理。 在catch块中可以使用关键字throw来手动抛出异常finally块中的代码无论是否发生异常都会被执行,它通常用于释放资源或清理工作。 总之,Java异常处理机制可以让程序在出现异常时不崩溃,提高了程序的健壮性和可靠性。
写文章

热门文章

  • 递归算法——超详细讲解(图文并茂) 63105
  • 排序算法之冒泡法(起泡法) 11537
  • 二分查找法 8097
  • 利用数组进行数据查找---折半查找法(二分法) 5718
  • 如何退出多重循环 4846

分类专栏

  • 设计模式 1篇
  • LeetCode 3篇
  • JavaSE
  • JavaWeb 15篇
  • WEB前端
  • 阶段一:Java基础入门 16篇
  • 《JavaEE开发工程师》学习之路 27篇
  • 十大排序 3篇
  • 卡关训练 9篇
  • Java 41篇
  • 面试题-你知多少? 2篇
  • 数据结构与算法 10篇
  • 日期时间 2篇

最新评论

  • 【JavaWeb】Servlet系列 --- 一文带你了解什么是C/S和B/S以及其优缺点分析

    m0_51904660: 解释得很好,看懂了

  • Objects中的equals和deepEquals二者方法的区别

    一梦红楼: Objects.deepEquals和equals从底层原理判断根本就不一样,第二段代码就是误导

  • 第3章:变量

    启斌呢: 你这是韩顺平老师的笔记吧?

  • 第9章:项目实战

    chars_lana: 这不是韩顺平老师的内容吗?

  • 如何退出多重循环

    weixin_45302192: 把if放system上直观点

大家在看

  • 操作符讲解<<>>
  • MySQL数据库:掌握备份与恢复的艺术,确保数据安全无忧(二) 1510
  • 基于Node.js+vue基于springboot的小型超市库存管理系统(开题+程序+论文) 计算机毕业设计 743
  • 一些音频文件转Wav
  • SW绘制光滑曲面

最新文章

  • 【JavaWeb】Servlet系列 --- 使用纯Servlet做一个单表的CRUD操作(oa小项目,超详细笔记)
  • 【JavaWeb】Servlet系列 --- HttpServletRequest接口详解(接口方法要记住!!!)
  • 【JavaWeb】Servlet系列 --- 关于一个web站点的欢迎页面
2022年41篇
2021年60篇
2020年3篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涛涛同学debug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

天下网标王网站建设是优化吗亳州网站关键词排名优化费用山东网站关键词排名优化技巧郑州网站权重优化效果与维护池州网络推广网站优化排名网站站外优化有哪些方法淘客网站优化大量长尾关键词合肥整站优化网站介休网站优化网站优化推广怎么寻找客户b2c网站优化岳阳网站优化哪家值得信赖网站视频剪辑器开发优化性能广州培训网站快速优化长春放心的电商网站优化福建怎样给网站做优化方案增城网站优化推广报价曲靖网站优化推广哪家好东城廊坊网站优化淘宝店网站优化宣传什么网站可以优化系统网站优化网站制作网络推广公司红安县网站seo优化排名淮北网站优化选哪家好余姚市网站seo优化排名松原网站排名优化云浮企业网站优化哪家好一个网站怎么做优化绵阳网站关键字优化功能强大的网站seo优化香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化