タグ

Error-Handlingに関するmasa8aurumのブックマーク (16)

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

    はじめに 最近書いてるソフトウェア設計シリーズです。今回は例外に関して。以前、以下のような記事を書いたのですが、もう少し深堀して書いてみました。 ちなみにソフトウェア設計シリーズは他には以下を書いています。 モジュールになぜ分けるのか? モジュール、依存、そしてカプセル化 モジュールをどう分割するのか? 簡潔さは力なり? 予測可能な振る舞いと簡潔さについて ドキュメントとしてのコメント 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
  • Condition Systems in an Exceptional Language - Chris Houser

    "Some errors, however, are sufficiently obscure to escape detection for a surprisingly long time." -Brooker and Wheeler, 1952 Clojure does not come with a Condition system as powerful as Common Lisp's. Instead, we have Exceptions, which start unwinding the stack the moment they're thrown, destroying information as they go. The values of locals disappear, and there is no ability to continue from t

    Condition Systems in an Exceptional Language - Chris Houser
    masa8aurum
    masa8aurum 2020/12/21
    Condition Systems / 3:10 からエラー処理の話。言語に関係なく参考になる。後半の「ライブラリなしで」エラー処理する方法は、 https://github.com/clojureman/special いわく "neither thread-safe nor laziness-safe" なので良くない
  • "Good Enough" error handling in Clojure | Adam Bard, Handsome Web Developer

    masa8aurum
    masa8aurum 2020/12/20
    Golangみたいに val, err のペアを返す。それをマクロで簡潔に書けるようにする。
  • Function Failure reporting: Error or OK

    masa8aurum
    masa8aurum 2020/12/20
    エラーに関する情報を err (error) と ok (bool) のどちらでやり取りするか / エラー情報が必要なら必ず err を返すべき
  • Ruby関西 勉強会で「プロを目指す人のための例外処理(再)入門」という発表をしてきました #rubykansai - give IT a try

    はじめに 2017年1月13日(土)に開催された第80回 Ruby関西勉強会で「プロを目指す人のための例外処理(再)入門」という発表をしてきました。 会場はすごくきれいで快適な、大阪梅田のグランフロントにあるAimingさんでした。 (どうもありがとうございました!) このエントリでは僕の発表内容と、勉強会中のエピソードを書いていきます。 発表スライド 当日使用した僕の発表スライドはこちらです。 例外処理については過去にいろいろ痛い目に遭わされているのと、間違った使い方をしている初心者さんをよく見かけるので、「お願いだから正しく使って!!」という気持ちでこのスライドを作りました😅 例外処理にまつわる僕の体験談については「当にあった怖い話」としてスライド内で紹介していますw その他にも例外処理のバッドプラクティスやベストプラクティスなど、例外処理を書くときは絶対に押さえておきたいポイント

    Ruby関西 勉強会で「プロを目指す人のための例外処理(再)入門」という発表をしてきました #rubykansai - give IT a try
  • 『異常系とは何であるか考えよう』

    悪態のプログラマとある職業プログラマの悪態を綴る。 入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。 システムのテストを行う際、テストの内容を「正常系」と「異常系」に分類することがある。それぞれのテスト項目数や不具合の発生数などを数えて、テストの妥当性や品質の判断に使ったりするのである。 この正常系、異常系という言葉はよく耳にするのだが、その意味は曖昧であることが多い。人によって解釈が違うのである。 例えば、「ユーザーが入力ミスをしたケース」について、「正常な値が入力されていないのだから異常系だ」という人もいれば、「開発者がミスを想定していて、プログラムで入力チェックをしてメッセージを出すなどの処理をしていれば正常系だ」という人もいる。 これは、異常系のテストを、「エラー・ハ

    『異常系とは何であるか考えよう』
  • 正常系と異常系の区別とドキュメントの書き方について - ウィリアムのいたずらの、まちあるき、たべあるき

    ウィリアムのいたずらが、街歩き、べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も) 正常系と異常系について、テストの観点から書かれているものが多い。 そして、区別が曖昧なものも多いです。 ところが、ソフトウェア工学の観点から見ると、これは、明確に分かれます。 →ユースケース記述で そして、開発上、重要な意味を持つので、ちょっと所見を書いてみます。 ■正常系とは <<ソフトウェア工学的には:たぶん>> ・事前条件が成立するときに、事後条件が成立するケースが正常 <<解説>> ある処理に対して、入力値が適切であるとき、 処理終了後の状態が、期待している通りになっているもの →期待している成果物ができている状態 ■正常系でないとは <<ソフトウェア工学的には:たぶん>> 2とおりある ・事前条件が成立しないケース ・事前条件は成立するが、事後条件が成立しないケース <

    正常系と異常系の区別とドキュメントの書き方について - ウィリアムのいたずらの、まちあるき、たべあるき
    masa8aurum
    masa8aurum 2018/05/07
    ■正常系とは、・事前条件が成立するときに、事後条件が成立するケース ■正常系でないとは、2とおりある ・事前条件が成立しないケース ・事前条件は成立するが、事後条件が成立しないケース
  • Javaの検査例外は、呼び出し側で「どんなに注意しても防げない」異常系 - Qiita


    Java  -  Javacatchchecked exceptionunchecked exception C#AltJavaJava使 @irxground  Java  
    Javaの検査例外は、呼び出し側で「どんなに注意しても防げない」異常系 - Qiita
  • 例外設計における大罪 - 契約

    PHPカンファレンス2012 & WordCampTokyo2012 LT発表資料です。 タイトルの元ネタ: http://www.amazon.co.jp/dp/4094512624

    例外設計における大罪 - 契約
  • 契約による設計から見た例外 - Qiita

    正しさは相対的な概念である。 Bertrand Meyer [1] Bertrand Meyer氏は「契約による設計」という概念から例外を導出し、例外の必要性をエレガントに説明しています。また、彼の説明に則れば今までの議論と比べて例外をいくぶんか形式的に扱えるようになります。契約による設計を学ぶ前に、プログラムの正しさについてもう一度考えてみましょう。 プログラムの正しさ あるプログラムが正しいかどうかを判定するにはどのようにすれば良いでしょうか。最も簡単な方法は、あるプログラムの正しさを形式的に定義する事です。より直接的に言えば、あるプログラムの正しさを簡単な論理式で表現します。その論理式が真ならばそのプログラムは正しい。偽ならばそのプログラムは正しくありません。 これだけだと関数の戻り値を検査すれば良いだけのようにも聞こえます。しかし、そう簡単な話ではありません。純粋でない言語の場合、

    契約による設計から見た例外 - Qiita
  • エラー処理設計:対処方法をシステム全体で定める


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


    scala-logging使  使scala.util.control.Exceptionscala.util.Try使 scala.util.control.Exception, scala.util.Try allCatch optOption allCatchcatch 使optNoneSome(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 { ... }` など
  • 良いエラーメッセージの書き方 - Qiita

    エラーには大抵「エラーメッセージ」が付いています。 自分は過去に、エラーメッセージの内容を雑にしてしまい後悔することがよくありました。 その経験から、良いエラーメッセージの書き方を考えました。 エラーメッセージを2つに分類する まず、エラーメッセージといっても次の2つのパターンで大きく異なってきます。 (1) ユーザーが見るエラーメッセージ (2) 開発者が見るエラーメッセージ (1) ユーザーが見るエラーメッセージ 内部実装のことは書かないようにする

    良いエラーメッセージの書き方 - Qiita
  • Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい - Qiita


     Swift Tweets Qiita稿 Q&A  @koher  "Swift4"  #swtws  koher (@koher) 2017114 1: Swift 4  Swift 2.0  Core Team  "Error Handling Rationale and Proposal"  try! Swift 
    Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい - Qiita
  • 1