我正在为一个非常基本的AI API创建一个包装器。当此API出现问题时,它不会抛出任何异常或以其他方式报告问题。
可以在调用API调用之前识别错误(例如错误的参数)。
在包装器中,我想通过抛出运行时异常来实现错误指示。目前,客户可以决定是否要处理它们。在特殊情况下,我会抛出一个检查过的异常但是有一个很好的理由。
问题是当抛出任何异常时程序停止并且无论如何都需要继续。我在想停止抛出异常,只是在记录器中将问题报告为警告,但客户端不知道发生了错误。
AI每秒都会调用一种更新方法。
处理已检查的异常是令人讨厌的,即使调用一个非常简单的调用,代码也会非常难看。
答案 0 :(得分:0)
您可以使用IllegalArgumentException或根据您的需要创建自定义异常,只需扩展Exception类或实现Throwable。然后,您可以管理应用程序的行为。但是你需要确保块被try-catch包围,这样你就可以管理它们,API shoudl抛出异常,你需要在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
}
答案 1 :(得分: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 and doSomething - > doSomethingThrowEx