エラーハンドリングモデル考察
Upcoming SlideShare
Loading in...5
×
 

エラーハンドリングモデル考察

on

  • 8,505 views

エラーハンドリングモデルに関する考察。

エラーハンドリングモデルに関する考察。

エラーハンドリング勉強会 ( http://partake.in/events/9874b92a-4cf0-4a20-a3fe-951239da5612 )にて発表。

Statistics

Views

Total Views
8,505
Views on SlideShare
5,593
Embed Views
2,912

Actions

Likes
5
Downloads
25
Comments
0

9 Embeds 2,912

http://d.hatena.ne.jp 2869
https://twitter.com 20
http://twitter.com 8
http://webcache.googleusercontent.com 6
http://nuevospowerpoints.blogspot.com 3
https://www.google.co.jp 3
http://www.slideshare.net 1
https://translate.googleusercontent.com 1
http://digg.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    エラーハンドリングモデル考察 エラーハンドリングモデル考察 Presentation Transcript

    • エラーハンドリングモデル考察
      エラーハンドリング勉強会 ( 2011-09-04 )
    • 導入
      自分なりにエラーハンドリングまわりについていろいろ考察した内容をまとめてみました。
      エラーハンドリングを制することは間違いなくプログラミングを制するのに必要不可欠な要素ですので、エラーハンドリングそのものについての理解を深めていきましょう!
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      2
    • 前回の発表
      以前、「Boost.勉強会 #3 関西」でも「エラーハンドリング」というタイトルで発表しました。主張が変わってるところなどがありますが、よろしかったらそちらもご参照ください。
      PPTX版:http://www.trickpalace.net/paper/error.handling.pptx
      PDF版:http://www.trickpalace.net/paper/error.handling.pdf
      slidesharehttp://www.slideshare.net/wraith13/ss-7987895
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      3
    • トピック
      エラーとは?
      エラー情報モデル
      人間系エラーハンドリング
      未検知エラー
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      4
    • この発表で「エラー」について
      全般的に抽象的な話なので、抽象的且つ広義な意味でのエラーをさします。
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      5
    • エラーとは?
      エラーハンドリングモデル考察
    • そもそもエラーとは?
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      7
    • そもそもエラーとは?
      「なんらかの不整合」
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      8
    • エラーハンドリングの目的
      エラーが「なんらかの不整合」であるとするとエラーハンドリングの目的は次のようなものだと言える。
      不整合を正す、あるいは正された状態に近づける。
      不整合を記録あるいは通知する。
      人間系をシステムの一部と見なす場合、これは目的ではなく前項を果たす為の手段と言える。
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      9
    • エラー情報モデル
      エラーハンドリングモデル考察
    • エラー情報モデル
      どのようにエラー情報を扱うかはエラーハンドリングの肝の一つです。
      さまざまなエラー情報モデルについて考えてみましょう。
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      11
    • エラー情報モデル
      voidエラーモデル
      unitエラーモデル
      singleエラーモデル
      stackエラーモデル/nestエラーモデル
      listエラーモデル
      treeエラーモデル
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      12
    • エラー情報モデル
      voidエラーモデル
      エラーをそもそも検知すらしないモデル。
      結果として問題が発生した場合には暴走などといった事態を招きやすい。
      実例:Z80アセンブラ
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      13
    • エラー情報モデル
      unitエラーモデル
      エラーを検知はするがその情報を扱わないモデル。
      検知により処理を中断するのみ。
      実例:Icon言語
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      14
    • エラー情報モデル
      singleエラーモデル
      エラーを検知しその情報を同時にひとつのエラーについてのみ扱うモデル。
      現状、もっとも一般的だと思われるモデル。
      実例:86系アセンブラ、Win32API
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      15
    • エラー情報モデル
      stackエラーモデル/nestエラーモデル
      エラーを検知しその情報を必要に応じて入れ子にして扱うモデル。
      singleエラーモデルを拡張したものと言え、一般的に言語/システムの機能ではなくライブラリで実現される。
      実例:Java,C#,C++11
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      16
    • エラー情報モデル
      listエラーモデル
      エラーを検知し必要に応じてその情報をリストで扱う。
      エラーが発生したままの状態でも処理の継続が可能なモデル。
      実例:各種コンパイラ
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      17
    • エラー情報モデル
      treeエラーモデル
      エラーを検知しその情報を必要に応じてtreeで扱うモデル。
      stackエラーモデル/nestエラーモデルとlistエラーモデルのハイブリッド。
      実例:trickerr.h ( C++ )
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      18
    • 人間系エラーハンドリング
      エラーハンドリングモデル考察
    • 人間系エラーハンドリング
      仮に人間系もシステムの一部と見なした場合、それはどのようなものであるべきか考えてみましょう?
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      20
    • 人間系エラーハンドリング
      システム的な視点での人間の意味は次のようなものとなります。
      大本の呼び出し元関数。
      割り込みイベントの発生元のひとつ。
      末端の呼び出し先関数。
      ->関数およびイベントと見なせる。
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      21
    • 人間系エラーハンドリング
      人間系の関数の特徴
      非常に動作が重い。
      グローバル変数(リソース)にアクセスしまくり。
      失敗がすることがある。( 誤操作、誤認、誤判断 )
      ->関数としては最悪ですね。
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      22
    • 人間系エラーハンドリング
      人間系が呼び出し元関数であるならばエラー情報を受け付けるべき。
      プログラム全体もひとつの関数であるという視点に立って、内部の関数がそうであるようにエラーをありのまま返すべき。
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      23
    • 人間系エラーハンドリング
      人間系が末端の呼び出し先関数であるならばエラー情報を返せるべき。
      人間系もひとつの関数であるという視点に立って、プログラム内の関数がそうであるようにエラーを返し得るという前提に立つべき。
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      24
    • 人間系エラーハンドリング
      実際に人間系関数はどのようなエラーを返すのか?
      例:
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      25
      キャンセル
      タイムアウト
      一時停止
      サスペンド
      終了
      ヘルプ
      バグレポート
      サポートリクエスト
    • 人間系エラーハンドリング
      これらのエラーは常に人間が返せるようになっているべき。
      特にバグレポートやサポートリクエストはシステムとして用意しておくことで、より詳細な情報取得が可能になり、デバッグやサポートの役に立つことでしょう。
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      26
    • 未検知エラー
      エラーハンドリングモデル考察
    • 未検知エラー
      システム的にエラーはエラーとして検知されて初めてエラーとなります。
      これは言い換えると本来エラーであるべき状態であってもエラーを検知するコードが不十分な為にエラーとして認識されない状態があることになります。
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      28
    • 未検知エラー
      実害があるとは限らないですが、未検知エラーは全てバグと言えます。
      「疑わしきはエラー」とする視点に立つとプログラムは常にエラー状態にあるとも言えます。
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      29
    • 未検知エラー
      未検知エラーへの対処として人間系関数がエラーを返すことで問題を軽減できる可能性がある。
      ->未検知エラーへの対処の一環として、本来、システム系しか返すことの無いハズのエラーも人間系関数から返せるようにするのも面白いかも?
      エラーハンドリングモデル考察 エラーハンドリング勉強会
      30
    • 質疑応答
      エラーハンドリングモデル考察
    • ご清聴ありがとうございました。
      エラーハンドリングモデル考察