Your SlideShare is downloading. ×
Doc and Error Handling
Doc and Error Handling
Doc and Error Handling
Doc and Error Handling
Doc and Error Handling
Doc and Error Handling
Doc and Error Handling
Doc and Error Handling
Doc and Error Handling
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,521

Published on

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

No Downloads
Views
Total Views
7,521
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. まとめ• ドキュメントは大事• アプリケーションコードの全ての関数までドキュメントを記 載する必要はないが、ライブラリコードはドキュメントを書 くべし。• ドキュメントが間違っていたら報告しよう。 それはあとに続く開発者にとって有益。• 型は大事。 型はプログラム内にプログラムで記載されたドキュメント。

×