You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何在new关键字创建对象的初始化块内捕获异常?

匿名内部类初始化块中捕获异常的正确方式

你之前的写法不符合Java语法规则,匿名内部类的大括号属于实例初始化块,不能直接把try-catch作为这个块的顶层结构。正确的做法是把try-catch嵌套在初始化块内部,包裹住可能抛出异常的代码。

错误写法示例:

Test test1 = new Test()
{
 try
 {
  
 }
 catch()
 {
 
 }
};

正确写法示例:

Test test1 = new Test() {
    {
        try {
            // 放置可能抛出异常的代码
            doSomethingThatMightThrow();
        } catch (Exception e) {
            // 自定义异常处理逻辑
            System.err.println("捕获到异常: " + e.getMessage());
        }
    }
};

原理很简单:匿名内部类的大括号里的代码是实例初始化逻辑,本质是一段代码块,你可以在这个块内部嵌套try-catch结构来捕获执行过程中出现的异常,而不是把try-catch直接作为初始化块的外层结构。

内容的提问来源于stack exchange,提问作者Abhishek Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 05:42:40