nDiki : 例外処理

例外処理 - exception handling

関連情報

2011年2月1日 (火)

今日のさえずり: 昔は例外処理を好んで使っていたが、最近はできるだけ使いたくない派

2011年02月01日

  • 08:05 明日 9:15 で病院予約した。花粉症もらいにいく。
  • 09:31 Wi-Fi に対応したspモードメールアップデート中。 #Xperia
  • 09:37 完了。Wi-Fi 設定はあ・と・で。 #Xperia
  • 09:59 GPS での測位、今日は東にだいぶずれてるな。端末の問題? #Xperia
  • 10:05 あ、良くなってきた。
  • 10:45 プリンタ保守のエンジニアから電話修理難航中でまだしばらくかかりそうとのこと。いったいどんな不具合だったんだろう。
  • 11:59 Google アカウント1つ潰した。
  • 12:07 弁当 350円。 (@ 向日葵 和泉町店・カレー食堂) http://4sq.com/eLgExR
  • 12:18 「40前後で『ガールズトーク』と言うのはいかがなものか」ってにいったら、いいんだって言われた。「セックス・アンド・ザ・シティ」が何たらとか説明された。ということでアリらしいです。
  • 13:32 REGZA Phone T-01C 買った同僚に K-9 Mail 薦めた。 #Android
  • 13:33 Google アカウントもう1つ潰した。
  • 17:07 spモードメール、バックグラウンドで送信できるようになったんだ。これは大きな進歩。 #Android
  • 18:52 コーディング規約内の心得に「サンプルを鵜呑みにしない」と書いてあるのだが、その後コーディング規約内にサンプルが出てくるので心がザワザワする。
  • 19:01 昔は例外処理を好んで使っていたが、最近はできるだけ使いたくない派。
  • 19:09 @wtnabe 開発が進むにつれて、どんな例外が throw されてくるかが次第に自明で無くなってくるから。
  • 19:16 @gnue 開発が進むにつれて、どんな例外が throw されてくるかが次第に自明で無くなってくるから。
  • 19:21 Joel Spolsky の「間違ったコードは間違って見えるようにする」に例外処理について書かれているけど、だいたいその主張に近い。
  • 19:24 Google C++スタイルガイドも C++ の例外を使わない派。
  • 19:27 More Joel on Software に収録されてる。 http://amzn.to/eARt3t RT @Naney: Joel Spolsky の「間違ったコードは間違って見えるようにする」に例外処理について書かれているけど、だいたいその主張に近い。More Joel on Software
  • 19:36 呼び出し先を全部辿らないとどんな時に何が throw されてくるかわからないし、ここで throw するようにすると全ての呼び出し元できちんと catch されるのかも全部辿らないといけない。
  • 19:42 ドキュメンテーションコメントにおいてメソッドが何を throw するかってのも最初は書いてみるけど破綻するよね。
  • 20:18 K-9 MailGmail からプッシュするフォルダを INBOX フォルダから重要フォルダに変えてみた。優先トレイがきちんと学習してくれれば、ちょっとしたニュースレターとかでの通知が減るはず。 #Android
  • 20:20 INBOX の同期間隔は長めに変更。 #Android
  • 21:52 spモードパスワードって何だ。
  • 21:53 わかった。あれだ。
  • 22:03 Wi-Fi 接続でのspモードメールの送受信を確認。 #Xperia
  • 22:24 先週の水曜日に爪が折れていて皆が困っていた(と思われる) LAN コネクタを直したんだけれども、誰も「いいね!」って言ってきません。計算機管理チームとはそういうものです。
  • 24:25 X-Face 懐かしい。Sylpheed だと今でもちゃんと表示されるんだ。
[ 2月1日全て ]

2011年2月2日 (水)

例外処理機構は刃物だ

More Joel on Software

昔は例外処理機構(try で catch で throw、throw)を好んで使って設計・実装していたが、最近はできれば使わない方がいいかなと思っている。 あれは刃物だ。気違いに刃物だ。宇宙戦艦ヤマトだ。

全体が見渡せるか管理下における規模のプログラムでは有効だが、そうではない場合はあれはヤバイ。面倒。そして落ちる。

Joel Spolsky の More Joel on Software「間違ったコードは間違って見えるようにする」に例外処理について書かれているけど、理由としてはだいたいその主張に近い。

Google C++スタイルガイドも C++例外処理機構を使わないとしている。

呼び出し先から一体何が throw されてくるのか?

呼び出し先ツリーを全部辿らないとどんな時に何が throw されてくるかわからない。

ドキュメンテーションコメントにおいてメソッドが何を throw するか説明されているからそれを見ればいい? それって信用できる? 自分は今書いているメソッドの呼び出し先で throw される可能性のある例外とメソッドで throw する可能性のある例外を、そのメソッドのドキュメンテーションコメントに毎回きちんと書いてる? コードの変更を反映させてる?

え? throws clause?

呼び出し元できちんと catch してくれるの?

今書いているメソッドで、例外を throw したくなった。 でもこれってきちんと catch されるの? 呼び出し元ツリーを全て確認して、必要があれば catch を追加しなければならない。さもなけらば……落ちるよね。

え? とりあえず全ての型を catch して中の例外処理が空になっているそのブロック何?

ということで

例外処理機構を使うと、頻繁に深くコードをチェックしなければならなくなる。

いや便利だしスマートに書けるし、言語/ライブラリ的に使わざるを得ない時もあるし、使う時は使うけどね。

die;

[ 2月2日全て ]

2014年8月29日 (金)

YAPC::Asia Tokyo 2014 1日目

image:http://www.naney.org/nDiki/2014/08/29/ogp_icon_350px.png

昨日の前夜祭から一夜明けての YAPC::Asia Tokyo 2014 1日目。昨年に引き続き慶應義塾大学 日吉キャンパス開催なのでなんとなく勝手がわかってちょっと気楽。去年はなんか多目的教室に入りそびれたので、今回は早めに移動とかしてそちらも回ってみた。

電源の取れる藤原洋記念ホールがなんだかんだいって居心地が良かったりはするんだけれどね。

今日は Go 使ってみようかなと思ったのが収穫。会場でとりあえず golang Debian パッケージインストールして hello.go ぐらいはしてみた。goroutine 以外は思っていたより普通の言語……なのかな?

お昼は @syamata 氏と @bornite 氏と日吉天神でラーメン。去年と同じ店だった。と思ったら去年は同じ場所で「らーめん 元山亭」という店だった。日吉天神は去年10月7日オープンらしい。 @syamata 氏が最近 Facebook で Yelp のフィード流しているのでモチベーションとか聞いてみたら「アーリーアダプターとして、まだデータにないお店やレビューを登録していくのが楽しい」とのこと。あーわかる。

「インフラエンジニア(狭義)は死んだ」 Satoshi Suzuki @studio3104 氏 (多目的教室2)

インフラエンジニアのメンタル的な面に視点を当てたトーク。

  • 物理的なハードウェアにかかわる事は減ってきている。
  • そのかわりコードを書ける必要が高まっている。ただしコードを書けばバグも発生するのでコードを書かない選択肢も常に考える。
  • あとリーダブルコード的な話とか。

Go For Perl Mongers」 Daisuke Maki @lestrrat 氏 (多目的教室2)

Go にいりては Go に従え。

  • いわゆる例外処理無い。
  • いわゆるオブジェクト指向的でもない。
  • fmt は ふむと? / ふんと?。
  • ハードタブ。

Go 使ってみたくなった。

「お待たせしました。Perl で BDD を簡単に実践する最高にクールなフレームワークができました」 Tokuhiro Matsuno @tokuhirom 氏 (多目的教室2)

Perl のテストフレームワーク回りの話し。

  • 2 の開発中止あるある。

テストフレームワーク関連はできるだけ枯れて安定したものがいいなと思う(テストフレームワークの不具合とか仕様変更まで追いかけ続けなくていいように)。便利さとのトレードオフ。

Perl::Lint - Yet Another Perl Source Code Linter」Taiki Kawakami @moznion 氏 (多目的教室2)

わりに泥臭い世界なのではと思ったら、やはり泥臭い感じだった(実装的に)。

C スタイル for だって goto だって適材適所なので使った方が良い場面だってあるので、そういうのはきちんと説明できるといいんじゃないかと思う(lint がそこまで判別できたら凄いけど)。

「One layer down below.」 Kang-min Liu @gugod 氏 (藤原洋記念ホール)

フルフルの汎用モジュール使わないで、軽くて速い機能を削った専用モジュールを作って使うのもいいよという話。

「いろんな言語を適材適所で使おう」 Kentaro Kuribayashi @kentaro 氏 (藤原洋記念ホール)

経営的な視点まで入った技術選択の考え方の概論トーク。

  • 継続性を見越した技術選択
  • microservices

「WHERE 狙いのキー、ORDER BY 狙いのキー」 @yoku0825 氏 (藤原洋記念ホール)

MySQL のインデックスを Perl データ構造で擬似的に説明。

フォントかわいいけどコード部分とかちょっと見辛かった。

「Mojolicious を使った web アプリケーション開発 実践編」 Yoshimitsu Torii @torii704 氏 (藤原洋記念ホール)

ビギナー向け。

Java For Perl Mongers」 Kazuhiro Osawa @Yappo 氏 (藤原洋記念ホール)

Java = Perl

Lightning Talks Day 1 (藤原洋記念ホール) スタート!

ハッシュタグ #yapcramen

(画像http://yapcasia.org/2014/ より)

今日のさえずり: 2 の開発中止あるある

2014年08月29日

[ 8月29日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・PO をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.063529s / load averages: 0.76, 0.81, 0.66
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker