問題タブ [checked-exceptions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaでチェック例外を無効にすることは可能ですか?
Java のチェック済みおよび未チェックの例外に関する記事を読んでいて、この記事/リンクを見つけました: https://projectlombok.org/disableCheckedExceptions.html
記事によると、これは javac 用に開発された単なるハックです。
以下のコード スニペットを検討してください。
public static void main(String args[]) throws IOException
ファイルを開こうとしているので、ここに書く必要が あります。ここで「throws」句は必須です。それがないとエラーになります。開いているファイルの存在について確信がある場合はどうなりますか。上記の場所にあるiemyfile.txt。ある時点で、コードに不要なチェック済み例外がほとんどないことがわかります。
必要に応じてチェック済みの例外を無効にするためにJavaが提供する機能はありますか?
これだけ調べても、なかなか答えが出ませんでした。
java - ドリアンのエラー クラス rethrow().wrap メソッドがコンパイラ エラーを引き起こす
Java 8 のラムダ関数でチェック例外をキャッチするために、 Durian ライブラリの Errors クラスを使用しようとしています。
私は簡単な関数を書きました:
そしてそれを呼び出そうとしています:
このコードはうまくいきます:
しかし、このコードはコンパイラ エラーを引き起こしますメソッド wrap(Throwing.Function) は Errors.Rethrowing 型に対して曖昧です
理由がわかりません。
ここから例を取得しました: https://github.com/diffplug/durian/blob/v2.0/test/com/diffplug/common/base/ErrorsExample.java
ドリアンのバージョン: com.diffplug.durian 3.4.0
java - 理論がチェックされたものを使用することを規定している場合、関連する組み込みのチェックされていない例外を使用する必要がありますか?
「チェックされた例外とチェックされていない例外」のトピックについて、SOにはかなりの数の投稿があります。この回答は、おそらく最もバランスが取れており、有益です。それでも、私はそこに示されている論理に従うことにいまだに葛藤しています。それには理由があります。
互いに類似した一連のサービスの周りにラッパー API を構築しています。ただし、それらの間には小さな違いがあり (または将来その可能性があります)、特定の機能 (二次的でショートカット的な性質の) が一部のサービスでサポートされ、他のサービスではサポートされない場合があります。したがって、次のアプローチを採用することは論理的に思えます。
なぜUnsupportedOperationException
ですか?このような状況に合わせて設計されているからです。
ただし、オラクル自身のマニュアルに加えて、関連するすべての SO 投稿は、クライアントが回復できる問題、または予測可能だが避けられない問題を通知するために例外が使用される場合、その例外はチェックされたものであるべきであると仮定しています。私の場合は、これらの要件に準拠しています。一部の操作では、使用できない可能性が事前にわかっている可能性があり、それらの操作は重要ではなく、必要に応じて回避できるためです。
だから私はこの難問に迷っています。完全に適合する標準の例外を使用して、例外の使用に関する一般的なロジックに違反する必要がありますか?それとも、独自のチェック済みの代替案を作成してコードを複製し、API ユーザーの間でさらなる混乱を招く必要がありますか?
exception - Checked または Unchecked のどちらの例外が優先されますか? なぜ?
独自の 2 つのカスタマイズされた例外を作成しました。1 つはチェックされ、もう 1 つはチェックされていません。コードを実行すると、チェックされた例外のみが表示されます。チェックされていない例外の出力を取得できないのはなぜですか??
上記のプログラムの出力は次のとおりです。 Got Checked Exception 、しかし、両方の出力Got Checked Exception && Got Unchecked Exceptionを期待しています。私がここでやっている間違いは何ですか?どうすればこれを克服できますか?