タグ

例外とtipsに関するkei_yam1209のブックマーク (2)

  • 攻撃的プログラミングには、例外ブレークポイントが便利 - 地平線に行く

    柴田 芳樹さん*1のブログを読んでいて、ふと目にとまったコメントがありました。 結果として、APIの実装コードでは不正パラメータの検査されていない。あるいは、検査はしているが例外をスローすることなく、単純にリターンしている。※ (中略) ※ 検査はしているが単純にリターンしていると、その不正と思われる値が当に不正なのか、正常値の範囲の一つなのかが不明瞭となります。 コメント: 全例外をキャッチして、適当な別の例外にラップしてスローしたり、キャッチはするけど何の処理もしないで戻り値を返す人も時々いますね。FileNotFoundException をキャッチして-1を帰したりとか。 FileNotFoundExceptionをそのままスローしてくれればファイル名やパスが間違っている可能性に即座に思いあたるのに、-1や別の例外を帰されると、そのエラーが何であるかを追跡するだけで丸一日を浪費さ

    攻撃的プログラミングには、例外ブレークポイントが便利 - 地平線に行く
  • PHPの組み込み関数で例外を発生させる方法

    このエントリではPHPの組み込み関数でエラー時に例外を発生させる方法を紹介します。デフォルト状態では、PHPの組み込み関数の大半はエラー時に例外を発生させません。 前のエントリで、PHPのheader関数は戻り値を返さず、エラー時に例外も発生させないことを紹介しました。これは酷い仕様だと思うのですが、どうすればエラーハンドリングできるかを考えてみました。 header関数の場合、エラー(警告)そのものは出ているので、以下の二つの方法が候補として考えられます。 error_get_last関数で直近のエラーを取得してエラー処理する set_error_handlerで定義したエラーハンドラ関数でエラー処理する どちらもモダンな書き方とはほど遠い感じです。 前者は、BASICのon error resume nextを連想させますし、直近のエラーがどの箇所で起こったかは簡単には識別できないので

  • 1