Your SlideShare is downloading. ×
Doc and Error Handling
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Doc and Error Handling

7,471
views

Published on


0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,471
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
26
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ドキュメントとエラーハンドリング 高橋 晶(Akira Takahashi) id:faith_and_brave @cpp_akira エラーハンドリング勉強会 2011/09/04(日)
  • 2. 自己紹介• 株式会社ロングゲート 取締役• C++テンプレートメタプログラマ• Boost Geometry Libraryコントリビュータ• 『プログラミングの魔導書』 編集長。
  • 3. チュートリアル• チュートリアルにはエラーハンドリングが記載 されていないことが多い。• そのまま使用すると、あとで想定していなかっ たエラーが発生してしまう場合がある。
  • 4. ドキュメントは大事!• 適切なエラーハンドリングを行うためには、ド キュメントをしっかり読まないといけない。• その関数はどういったケースでどういったエ ラーを出力する可能性があるのか。 そのエラーは、そのプロジェクトで起こること が想定できるものか。
  • 5. ドキュメントの読み方• 直接記載されていないエラーが報告される可 能性がある。• その関数自体だけではなく、引数として渡し たオブジェクトがエラーを報告する場合もある。• その関数が引数をどのように扱うのか注意し て読む必要がある。
  • 6. アンドキュメントなものは使わない• アンドキュメントな機能は、将来のバージョンアップで予 告なく変更・削除される可能性がある。• 「ライブラリをアップデートしたらリリースノートにも変更 が書かれていないのに動かなくなった」では困る。• アンドキュメントだが有用な機能だと思うなら、それを作 者に報告し、方針を確認した上で使おう。 例. 「アンドキュメントだからまだ使わないほうがいい?」 「ドキュメントパッチを送れば取り込んでくれる?」
  • 7. ドキュメントに記載されていないエラー• ドキュメントに記載されていないエラーを投げ る可能性が、実装を読んで発覚する場合が ある。• ドキュメントバグなので報告しよう。• アンドキュメントなエラーをハンドリングする場 合は、その旨コメントに書こう。 報告した際のチケット番号を記載するとGood!
  • 8. ドキュメント読むのめんどくさい• めんどくさいです。• ドキュメント読まなくても適切なエラーハンドリ ングがしたい!• ライブラリ作者は、間違った使い方をした場合 や、適切なエラーハンドリングを行わなかった 場合に、事前にそれを検知できる機構を用意 すべし。
  • 9. 型付けしよう• 静的型付け言語では、型付けによって、間違った使い 方をした場合にコンパイルエラーにすることができる。• ハンドリング洩れも、がんばればチェックできると思う (戻り値を受け取ったかのチェック、エラーチェックした か、をコンパイル時に判断するのは難しい)。• ただし例外の型付け、ハンドリング洩れの静的チェッ クは難しい。IDEのサポートに期待。 (もしくは例外を積極的に使わない)
  • 10. まとめ• ドキュメントは大事• アプリケーションコードの全ての関数までドキュメントを記 載する必要はないが、ライブラリコードはドキュメントを書 くべし。• ドキュメントが間違っていたら報告しよう。 それはあとに続く開発者にとって有益。• 型は大事。 型はプログラム内にプログラムで記載されたドキュメント。