0

我正在为一个非常基本的 AI API 创建一个包装器。当这个 API 出现问题时,它不会抛出任何异常或报告问题。

可以在调用 API 调用之前识别错误(例如错误的参数)。

在包装器中,我想通过抛出运行时异常来实现错误指示。目前,客户可以决定是否要处理它们。在特殊情况下,我会抛出一个检查异常,但这是有充分理由的。

问题是,当抛出任何异常时,程序会停止并且无论如何都需要继续。我在想停止抛出异常,只是在记录器中将问题报告为警告,但随后客户端不知道发生了错误。

人工智能调用一种方法来每秒更新一次。

处理检查的异常是令人讨厌的,即使调用一个非常简单的调用,代码也会变得非常丑陋。

4

2 回答 2

0

您可以使用 IllegalArgumentException 或根据需要创建自定义异常,只需扩展 Exception 类或实现 Throwable。然后,您可以管理应用程序的行为。但是你需要确保块被try-catch包围,这样你就可以管理它们,API应该抛出异常,你需要在try-catch-block中捕获它。例如:

try {
 String var = IamUsingThisAPI.methodOfTheAPI();
} catch (Exception e) { // You can create your custom Exception
 //maybe print stack trace but handle as you want
 System.out.println("Handling the exception");
 // Do something
 // Do something
}
于 2013-02-25T13:36:56.110 回答
0

您可以提供以下方法:

public void doSomethingQuiet(...) {
    try {
        doSomething(...);
    } catch (Exception ex) {
        log.warn(ex.getMessage());
    }
}

public void doSomething(...) throws Exception {
    if (incorrectArgs) {
        throw new Exception("Incorrect arguments!");
    }
    // process
}

您还可以将方法名称更改为更“自然”:doSomethingQuiet -> doSomething 和 doSomething -> doSomethingThrowEx

于 2013-02-25T13:38:28.917 回答