タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

scalaとexceptionに関するringo6119のブックマーク (3)

  • Eitherによるエラー処理 - エラー処理による分岐を減らす | Scala Cookbook

    エラー処理によるコードの分岐を減らしたい場合、Eitherを使うとよい。 Eitherの使い方 Either[A, B] は、AまたはBを返す型である。 Eitherは通常Either[(エラー情報), (結果)]の形で使われる。例えばデータ処理が成功した場合はその結果を用いて引き続きの処理を行いたいが、エラーの場合は何もせず次のコードにエラーだけを伝えたい場合がある。 Eitherから値を取り出すには、left, rightの値に対してmap, flatMapなどを用いる。例えば、Either.right map { ... }とすると、値の内容がRight型の場合はmap内の関数を適用し、Leftの型の場合はmapの処理を無視してLeftの内容(この場合はエラー情報を)をそのまま返す。 具体例 # 文字列がIntに変換できるならIntを、失敗した場合はExceptionを返す関数 sc

  • Scalaでの例外とEither

    しいたけ @yuroyoro @cooldaemon 俺の中ではEitherはJavaのチェック例外と同じ感覚で、利用側にExceptionの処理を適切に行わせたい場合に採用するものだと思ってます #scala 2011-05-11 14:21:47 🐶pomu0325 @pomu0325 @cooldaemon 検査例外的に異常の場合にLeftである型を返すのを明示したい場合にEither使ってます。Exceptionのサブクラス作らなくても好きな型を突っ込めるので場合によってはExceptionより短くかける時もありますね。 2011-05-11 14:23:04 Masahito IKUTA @cooldaemon @yuroyoro なるほどー。追加で恐縮ですが、多分、allCatch だと非チェック例外も捕まえてしましますよね。connect の中で、allCatch している

    Scalaでの例外とEither
  • Scalaでの例外処理 - Either,Option,util.control.Exception - ( ꒪⌓꒪) ゆるよろ日記

    今日はScalaの例外処理について解説しますよ。 基 - try,catch,finally 例外処理の基は、try,catch,finallyです。これはJavaと同じですね。 ただし、Scalaでのtry,catch,finallyは値を生成します。つまり、実行されたブロックの値が評価されます。 scala> val n = try{ "99".toInt } catch { case e:Exception => -99 } n: Int = 99 scala> val n = try{ "foo".toInt } catch { case e:Exception => -99 } n: Int = -99 上記のように、catch節には "case e:Exception => ..."のようなパターンマッチを書くことで、対応する例外の型に応じて補足することができます。try,

    Scalaでの例外処理 - Either,Option,util.control.Exception - ( ꒪⌓꒪) ゆるよろ日記
  • 1