タグ

javaとexceptionに関するdecoy2004のブックマーク (3)

  • Java Streams API を使って例外処理をきっちり行なうコードを書くことは難しい - Qiita

    Streams API をこれまでまともに使ったことがなかった。 まともに使おうとしたら例外処理の扱いが非常に難しいことを実感したので、一例を挙げてその難しさを解説する。 ##やりたい処理 複数のテキストファイルのそれぞれを1行ずつ読みこみ、空白文字で各行を単語に分割し、単語に対して何か処理を行なう、というよくある処理を実装してみよう。処理の手順を手続き的に書くと以下のようになる。 あるディレクトリの直下に存在する複数のテキストファイル(拡張子 .txt)を1つずつ読む 各テキストファイルを1行ずつ読む 各行(文字列)を、空白文字を区切り文字として複数の文字列(単語と呼ぶことにする)に分割する 各単語に対して何か処理をする。以下、処理の名前を analyze とする ##クラスの雛形 以下の TextFileProcessor を拡張したクラスを実装する。 各単語に関する処理 analyz

    Java Streams API を使って例外処理をきっちり行なうコードを書くことは難しい - Qiita
  • Javaの検査例外は、呼び出し側で「どんなに注意しても防げない」異常系 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 注:記事の内容はJavaで公式にドキュメントされているものではなく筆者の見解です。とはいえクラスを設計する上で有用な指針たり得ると思われるので公開したものです。 おさらい - 検査例外と非検査例外 Javaの例外クラスには「catchしないとコンパイルエラーになる」検査例外(チェック例外、checked exception)とそうでない非検査例外(非チェック例外、unchecked exception)があります。 検査例外は最近は嫌われる傾向がありC#では採用されていませんしAltJava言語も軒並み不採用、さらにはJavaの新しめ

    Javaの検査例外は、呼び出し側で「どんなに注意しても防げない」異常系 - Qiita
  • もしもラムダの中で例外が発生したら(前編) - Taste of Tech Topics

    ある日、 id:cero-t がJJUGの重鎮たちと話している中で、とある宿題をもらいましたとさ。 「Java8のラムダの中で例外が発生したら、どうなるんだろう?」 こんにちは、アキバです。 もう皆さんはJava8を使ってみましたか? とりあえずインストールしてみた人! ・・はーい (おまえか という冗談はさておき、 今回は、id:cero-t に代わって私が冒頭のお題を調べてみました。 1. SerialStreamで動かしたラムダで例外が発生したら まずは、小手調べにシングルスレッドの場合を見てみましょう。 検査例外が発生するようなコードをラムダに書いてみると、コンパイルエラーになります。 こんなコードです。 try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(W_FILENAME))) { // writer.

    もしもラムダの中で例外が発生したら(前編) - Taste of Tech Topics
  • 1