JAVA的try...catch的使用

很多时候我们都是被动的使用try...catch捕捉异常,因为java有些代码必须捕获异常或者抛出异常才可以运行。

但是很多时候try..catch可以帮我们解决很多问题。

比方说,我们需要访问一个接口,接口返回的数据为空时是一个string,有数据时返回一个json。但是我们不知道对方返回的数据什么时候为空,什么时候不为空。

但是我们可以在代码里面只当json处理,然后将这些代码用try..catch包裹起来,

--------如果不捕获异常

    @Test
    void testJSON(){
        String s = "没有数据返回";
        JSONObject jsonObject = JSON.parseObject(s);
        System.out.println("继续执行后面的代码");
    }

--------捕获异常

    @Test
    void testJSON(){
        String s = "没有数据返回";
        try{
            JSONObject jsonObject = JSON.parseObject(s);
        }catch (Exception e){
            System.out.println("这不是一个json");
        }
        System.out.println("继续执行后面的代码");
    }

如果不捕获异常,后面的代码将无法执行,这肯定是我们不希望看到的。

还有一个就是finally的使用,这个其实不是很常用,但是看个人需要。

    @Test
    void testJSON(){
        String s = "{\"pageSize\":\"10\",\"page\":\"1\"}";
        try{
            JSONObject jsonObject = JSON.parseObject(s);
        }catch (Exception e){
            System.out.println("这不是一个json");
        }finally {
            System.out.println("都会执行");
        }
        System.out.println("继续执行后面的代码");
    }

无论是否捕获到异常都会执行finally里面的代码块,这里就没有放出捕获到异常的情况了。可以自己尝试。

这只是举一个例子,实际应用场景还有很多。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
try...catchJava中用于处理异常的一种机制。通过使用try块,我们可以编写可能会抛出异常的代码。如果在try块中出现异常,程序会跳转到catch块并执行相应的处理代码。catch块用于捕获并处理特定类型的异常。通过在catch块中编写适当的代码,我们可以处理异常,并采取适当的行动,比如打印错误信息或进行补救措施。 在try块中,如果抛出了异常,程序会立即跳转到与之匹配的catch块。catch块可以处理多个异常类型,通过在多个catch块中使用不同的异常类型来分别捕获和处理这些异常。这样可以根据不同的异常类型采取不同的处理方式。 此外,try...catch还可以与finally代码块一起使用。finally代码块中的代码始终会被执行,无论try块中是否抛出异常。这可以用于确保资源的释放或清理操作,比如关闭文件或数据库连接。 总结来说,通过学习和使用try...catch,我们可以在程序中处理异常,保证程序的正常运行并对异常情况进行适当的处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [java中throws与try...catch的区别点](https://download.csdn.net/download/weixin_38615591/12743305)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [JAVA学习-try...catch...finally结构的运行逻辑](https://blog.csdn.net/qq_48772498/article/details/122591629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [在java中如何捕获异常try...catch...finally、多异常处理方式](https://blog.csdn.net/m0_53953493/article/details/116950985)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Tao____

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

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

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

打赏作者

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

抵扣说明:

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

余额充值