0

非常に基本的な AI API のラッパーを作成しています。この API で問題が発生した場合、例外はスローされないか、問題が報告されます。

API 呼び出しが呼び出される前にエラーを認識することができます (例: 間違った引数)。

ラッパーでは、実行時例外をスローしてエラー表示を実装したいと考えています。今のところ、クライアントはそれらを処理するかどうかを決定できます。例外的なケースでは、チェック例外をスローしますが、それには十分な理由があります。

問題は、例外がスローされたときにプログラムが停止し、関係なく続行する必要があることです。例外のスローを停止し、ロガーで問題を警告として報告することを考えていましたが、クライアントはエラーが発生したことを知りません。

AI は、1 秒ごとに更新のメソッドを呼び出します。

チェックされた例外の処理は厄介で、非常に単純な呼び出しを呼び出すだけでもコードは非常に醜くなります。

4

2 に答える 2

0

Exceptionクラスを拡張するか、Throwableを実装するだけで、IllegalArgumentExceptionを使用したり、ニーズに基づいてカスタムExceptionを作成したりできます。次に、アプリケーションの動作を管理できます。ただし、ブロックがtry-catchで囲まれていることを確認して、ブロックを管理できるようにする必要があります。APIshoudl throw例外、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 に答える