タグ

あとで読むとError-Handlingに関するmasa8aurumのブックマーク (6)

  • 【ソフトウェア設計】例外処理を考える

    はじめに 最近書いてるソフトウェア設計シリーズです。今回は例外に関して。以前、以下のような記事を書いたのですが、もう少し深堀して書いてみました。 ちなみにソフトウェア設計シリーズは他には以下を書いています。 モジュールになぜ分けるのか? モジュール、依存、そしてカプセル化 モジュールをどう分割するのか? 簡潔さは力なり? 予測可能な振る舞いと簡潔さについて ドキュメントとしてのコメント TL;DR 例外は「原則」キャッチしない 業務例外や必ずハンドリングさせたい例外はOptionalなど戻り値の方が便利 だいたい以下の図が言いたい事のすべて 例外処理とは? 「例外処理(Exception Handling)」は言語に依らず普遍的な関心事です。端的に言えば例外処理は異常やシステムの動作に不備が発生した際の特別な分岐処理です。リカバリやリソースの解放、あるいはユーザへの通知などがありますね。

    【ソフトウェア設計】例外処理を考える
    masa8aurum
    masa8aurum 2024/05/03
    “「すべての例外ハンドラーを除去しても、このプログラムは動作することができるだろうか?」 -> ノーであれば、例外ではない状況下で例外が使われているはずです。” / “例外処理で行う事” 4つ
  • 凄腕エンジニアさんから学んだ例外の話 - Qiita

    はじめに 今携わっているプロジェクトで凄腕エンジニアさんと一緒に開発をさせていただいているのですが、その凄腕エンジニアさんから教えていただいた例外の話がとても勉強になり、 さらにこの例外の話を他のプロジェクトエンジニアさんに伝えたところ、反応が良く、とても勉強になりました!という声をいただけたので、アウトプットしていきたいと思います。 (この記事の中で凄腕エンジニアさんのことはTさんと呼ぶことにします。) ※【凄腕エンジニアさんから学んだ例外の話】の補足 というQiita記事を書きました。 この記事を読み終わった後に疑問が残った人などは補足資料として読んでいただけると嬉しいです。 例外の考え方の源 Tさんの例外の考え方は http://diveintopython3-ja.rdy.jp/your-first-python-program.html#exceptions ↑こちらのPyth

    凄腕エンジニアさんから学んだ例外の話 - Qiita
  • エラー画面やAPIエラーから独自エラーまで! フローチャートでちゃんと理解するLaravelの例外処理とケーススタディ - Qiita

    エラー画面やAPIエラーから独自エラーまで! フローチャートでちゃんと理解するLaravelの例外処理とケーススタディPHPLaravelexceptionlaravel5.5 TL;DR Laravel 5.5 ベース(Laravel 5.7 まで対応) フローチャートでおおまかな処理の流れと、どこでどんなことをするのかを解説します それを踏まえて「こんな時はこうする」というケーススタディを紹介 中小規模のプロジェクトにはそのままコピペで使ってもらえるベストプラクティス的なものを目指しています 実際にこれをベースにしたものが中規模業務アプリに実装されています バリデータ編もあります。 → フロー図で理解するLaravelバリデータの仕組みと、チーム開発でのケーススタディ 動機 個人的にエラー処理の仕組みを理解するために書いたチャートです 自分で勉強しようとしたとき、Laravelのエラー

    エラー画面やAPIエラーから独自エラーまで! フローチャートでちゃんと理解するLaravelの例外処理とケーススタディ - Qiita
  • Function Failure reporting: Error or OK

    masa8aurum
    masa8aurum 2020/12/20
    エラーに関する情報を err (error) と ok (bool) のどちらでやり取りするか / エラー情報が必要なら必ず err を返すべき
  • エラー処理設計:対処方法をシステム全体で定める

    システムのエラー処理を総合的に設計する どんなシステムでもエラー処理は欠かせず、たいていは大きな割合を占める。システム上のエラーはもちろん、業務上に代表される問題領域のエラーまで対応しなければならないからだ。エラー処理の基は、エラーを検出し、その結果によって適切な処理を実行すること。しかし、システム全体でみれば、異なるタイプのエラーが数多くあるため、エラー処理が分散するし、エラーの種類ごとに対処が違う。完成度の高いシステムを目指すなら、全部のエラーを把握しながら、システムを設計する必要がある。 一部のエラー処理は、システムの基構造と深く関係している。エラー処理を重視すると、システムの基構造に影響を与える。逆に、システムの基構造がエラー処理の一部を制限することもある。仕方がないので、両者の妥協点を見付けるしかない。 この点を考慮し、次のような手順で基構造を設計する。最初は、エラーが

  • scala.util.control.Exceptionとscala.util.Tryを使った例外処理

    scala-loggingを使ってみる 概要 例外の取り扱いをする場合にどれを使うのが適切なのかわからなくなったので、scala.util.control.Exceptionとscala.util.Try、両クラスの各機能をざっと使ってみる。 前半はscala.util.control.Exception, 後半はscala.util.Try。 allCatch optでOptionを戻り値に とりあえずallCatchですべての例外をcatchする処理を書く。 最も手軽に使えそうなのがopt。例外だったらNone、成功すればSome(x)を返す。 import scala.util.control.Exception._ def divide(x: Int, y: Int) = allCatch opt { x / y } var result = divide(0, 0) printl

    masa8aurum
    masa8aurum 2018/01/18
    `allCatch opt { ... }` など
  • 1