try catch执行过程分析

这篇具有很好参考价值的文章主要介绍了try catch执行过程分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本篇文章带大家聊聊try catch的执行过程,有时候在开发的过程中,try代码里如果出现异常,catch后的步骤还会继续执行吗?以及finally的使用。

下面来分析一下几种使用场景:

场景一:

try代码块中出现异常后,系统会继续执行catch代码块的程序。catch代码块外的代码也会继续被执行。

/**
 * Created By wuang
 * Create Date 2022/7/12 17:47
 * Description:
 */
public class TryCatchDemo {
    public static void main(String[] args) {
        try {
            int[] myNumbers = {1, 2, 3};
            System.out.println(myNumbers[10]);
        } catch (Exception e) {
            System.out.println("Something went wrong.");
        }
        System.out.println("catch 之后的代码执行了");
    }
}

输出结果:

try catch异常后会执行后面的代码吗,Java,java,前端,算法

场景二

try代码块中抛出的异常被catch捕获,此时需要注意,catch捕获的异常必须是try抛出的。此时程序会继续执行catch代码块外的代码。否则请看场景三

/**
 * Created By wuang
 * Create Date 2022/7/12 17:47
 * Description:
 */
public class TryCatchDemo {
    public static void main(String[] args) {
        try {
          //抛出异常
            throw  new ArrayIndexOutOfBoundsException();
//            int[] myNumbers = {1, 2, 3};
//            System.out.println(myNumbers[10]);
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("Something went wrong.");
        }
        System.out.println("catch 之后的代码执行了");
    }
}

执行结果:

try catch异常后会执行后面的代码吗,Java,java,前端,算法

场景三

try抛出的异常,在catch中没有捕获,则此时程序不会继续执行catch代码块内的代码,也不会执行catch代码块之外的代码。

/**
 * Created By wuang
 * Create Date 2022/7/12 17:47
 * Description:
 */
public class TryCatchDemo {
    public static void main(String[] args) {
        try {
            throw  new ArrayIndexOutOfBoundsException();
//            int[] myNumbers = {1, 2, 3};
//            System.out.println(myNumbers[10]);
        } catch (NullPointerException e) {
          //此处捕获的异常,不是ArrayIndexOutOfBoundsException,则catch中的
            System.out.println("Something went wrong.");
        }
        System.out.println("catch 之后的代码执行了");
    }
}

执行结果:

try catch异常后会执行后面的代码吗,Java,java,前端,算法

finally代码块

针对上面出现的三种场景,finally中代码块都会被执行。针对场景三,finally代码块外的代码不会被执行了,这就和场景三的结论相吻合。

/**
 * Created By wuang
 * Create Date 2022/7/12 17:47
 * Description:
 */
public class TryCatchDemo {
    public static void main(String[] args) {
        try {
            throw  new ArrayIndexOutOfBoundsException();
//            int[] myNumbers = {1, 2, 3};
//            System.out.println(myNumbers[10]);
        } catch (NullPointerException e) {
            System.out.println("Something went wrong.");
        }
        finally {
            System.out.println("finally 中的程序执行了.");
        }
        System.out.println("catch 之后的代码执行了");
    }
}

try catch异常后会执行后面的代码吗,Java,java,前端,算法

到此try catch的过程就验证完毕,在排查问题时知道此流程会帮助你更快的定位问题。文章来源地址https://www.toymoban.com/news/detail-557122.html

到了这里,关于try catch执行过程分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • try catch捕获异常并打印报错行号等信息

    在我们系统中,如果某一行代码报错了,我们打印日志的时候却不知道具体报错行号,报错信息等等。 如何才能打印报错行号呢? 我们拿到Exception对象后,首先要拿到错误的堆栈信息,可以通过下面方法拿到: 拿到堆栈信息后,那么我们就可以获取具体的报错信息了. 通过

    2024年02月12日
    浏览(81)
  • 优雅而高效的JavaScript——try...catch语句(js异常处理)

    😁博主:小猫娃来啦 😁文章核心: 优雅而高效的JavaScript——try…catch语句 异常处理软件开发中扮演着至关重要的角色。无论是前端还是后端开发,JavaScript作为一种常用的编程语言,异常处理对于保证程序的健壮性和可靠性至关重要。下面将详细阐述异常处理的重要性,并

    2024年02月04日
    浏览(34)
  • JavaScript的try-catch-finally异常处理机制--详解

    JavaScript 提供了异常处理机制,通过 try-catch-finally 语句块来捕获和处理异常。以下是对该机制的详细解释和示例: 1. try 块: try 块用于包裹可能会产生异常的代码块。在 try 块内,您可以放置任何可能引发异常的代码。 2. catch 块: catch 块用于捕获和处理 try 块中抛出的异常。

    2024年02月11日
    浏览(47)
  • 详解Java中的异常体系结构(throw,throws,try-catch,finally,自定义异常)

    目录 一.异常的概念 二.异常的体系结构 三.异常的处理 异常处理思路 LBYL:Look Before You Leap EAFP: It\\\'s Easier to Ask Forgiveness than Permission 异常抛出throw 异常的捕获 提醒声明throws  try-catch捕获处理 finally的作用 四.自定义异常类 有一句话说的很好 ”程序员不是在写BUG就是在改BUG”

    2024年02月05日
    浏览(33)
  • 一种新的姿势:程序try/catch抛出异常之绕过canary pwn121

    一种新的姿势:程序try/catch抛出异常之绕过canary 我前面发了不少关于绕过canary的姿势,先总结一下,现在绕过canary的姿势有泄露,爆破,格式化字符串绕过,多线程劫持TLS绕过, stack_smashing,数组越界,今天介绍一种新的姿势,就是程序处理异常时,如果异常被上一个函数的

    2024年04月13日
    浏览(32)
  • C++/Qt中异常处理try-catch语句的使用方式及场景案例

    try-catch语句用于捕获和处理异常,它的基本语法如下: ```cpp try {     // 可能会抛出异常的代码块 } catch (ExceptionType1 e1) {     // 处理 ExceptionType1 类型的异常 } catch (ExceptionType2 e2) {     // 处理 ExceptionType2 类型的异常 } catch (...) {     // 处理其他类型的异常 } ``` 在try块中,我

    2024年02月12日
    浏览(38)
  • C++ try-catch语法分析与应用

    通过前面的学习,我们了解了try-catch语法的基本使用。但是,C++提供的异常处理机制很全面,下面再具体分析。 发生异常的时候,我们可以主动抛出一个异常,所以,使用throw抛出一个异常。异常可以是一个数值,字符,或者表达式。 抛出的异常可以有try-catch语句捕获。tr

    2024年02月16日
    浏览(32)
  • 不要在代码中随便使用try...catch了

    前言  📫 大家好,我是南木元元,热爱技术和分享,欢迎大家交流,一起学习进步!  🍅  个人主页: 南木元元 目录 背景 js中的try...catch try...catch运行机制 js的事件循环机制 try...catch无法捕获异步错误的原因 解决方法 结语 之前面某物的时候,遇到了一个有关try...catch的问

    2024年03月14日
    浏览(36)
  • try、catch语句解析

    try-catch 语句是JavaScript中的一种 处理异常 的方式。 它的执行规则如下:首先会执行try中的代码,如果异常则会通过throw抛出异常,而catch会捕获抛出的异常。 在代码执行过程中,如果遇到错误会立即停止执行,转而进入catch语句当中。 在 try-catch 语句中,二者都是可选择的。

    2024年02月15日
    浏览(29)
  • 前端try和catch

    为什么要使用try catch 使用 try...catch 语句是为了处理和管理可能会在程序运行过程中发生的异常或错误情况。以下是一些使用 try...catch 的主要原因: 错误处理:在开发过程中,无法避免地会出现各种错误,如网络请求失败、数据解析错误、未定义的变量引用、不合法的操作等

    2024年02月07日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包