[解決済み】Java 8:ストリームで例外をスローするメソッドを操作するにはどうすればよいですか?
2022-04-18 10:43:12
質問
クラスとメソッドがあるとします。
class A {
void foo() throws Exception() {
...
}
}
のインスタンスごとに foo を呼び出したい。
A
のようなストリームで配信される。
void bar() throws Exception {
Stream<A> as = ...
as.forEach(a -> a.foo());
}
質問です。例外を適切に処理するにはどうしたらよいですか?foo() が投げる可能性のある例外を処理していないので、私のマシンではコードがコンパイルされません。その
throws Exception
の
bar
は、ここでは役に立たないようです。なぜでしょうか?
どのように解決するのですか?
メソッド呼び出しを別のメソッドにラップする必要があります。
チェック済み例外
. のサブクラスであるものは、まだ投げることができます。
RuntimeException
.
通常のラッピングのイディオムは、次のようなものです。
private void safeFoo(final A a) {
try {
a.foo();
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
(スーパータイプ例外
Exception
は
のみ
は例として使用し、決して自分で捕捉しようとしないでください)
で呼び出せばいい。
as.forEach(this::safeFoo)
.
関連
-
[解決済み] java.sql.SQLRecoverableException: IO エラーです。NL Exceptionが発生しました
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] Java 8のmap()メソッドとflatMap()メソッドの違いは何ですか?
-
[解決済み] Java 8のストリーム内部からCHECKED例外を投げるにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] javax.mail.MessagingException: SMTPホストに接続できませんでしたか?
-
[解決済み] JavaにおけるMouseListenerとMouseAdapterの違いについて
-
[解決済み] Javaにおけるシンボリック参照
-
[解決済み] SubclipseとJavaHLのインストールで頭を悩ます
-
[解決済み] Javaにおけるチェック済み例外とチェックされていない例外の理解
-
[解決済み] Java 8のストリーム内部からCHECKED例外を投げるにはどうすればよいですか?
-
[解決済み】Javaでファイルを再帰的にリストする
-
[解決済み】Stream<T>がIterable<T>を実装していないのはなぜですか?
-
[解決済み】Java 8 Lambda関数が例外を投げる?
-
[解決済み] Java 8: ラムダストリーム、例外を含むメソッドによるフィルタリング