タグ

例外に関するkei_yam1209のブックマーク (6)

  • Standard PHP Libraryの例外クラスを活用しよう!

    はじめに 今回はPHPでの例外の扱い方、特にSPL (Standard PHP Library)の例外クラスの使い方を見ていきます。例外を投げる際には、エラー種別により例外クラスを切り替え、受け取る側での処理も分けます。Javaなどではごく当たり前です。しかし、PHPプログラマの中には、そこまで切り分けない人も意外といます。Exceptionクラスだらけのコードもしばしば見かけます。 SPLの例外クラス アプリケーションによっては、例外クラスを独自に作成することもあります。とはいえ、いきなり例外クラスを複数定義して使いまわすことは、若干ハードルが高いかもしれません。まずは、SPL (Standard PHP Library)の例外クラスを使ってみましょう。SPLでは以下の例外クラスを提供しています。 SPL 例外クラスツリー LogicException (extends Exceptio

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

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

    攻撃的プログラミングには、例外ブレークポイントが便利 - 地平線に行く
  • Java のチェック例外と非チェック例外の考察まとめ - 全力で怠けたい

    世間ではオワコンと揶揄されることも珍しくない Java ですが、Java を初めたばかりのエンジニアがチェック例外と非チェック例外の使い分けについて「ベストプラクティスないの?」と調べたのをまとめてみました。 エントリまとめ どのエントリも Java についての深い洞察と開発の実践現場での生きた経験をもとに書かれていて大変に勉強になりました *1 エントリ中からリンクされているエントリもぜひ一読されることをおすすめします。 検査例外と非検査例外(実行時例外)をどう使い分けるか - Lino Blog Java言語のチェック例外は当にGood Partなのか? - 達人プログラマーを目指して Javaのチェック例外はクソ仕様 - やさしいデスマーチ 例外の扱いについて その2 - じゅんいち☆かとうの技術日誌 「検査例外はアジャイルやオブジェクト指向の考えに反するという事実」について一部誤

  • 例外を使う - Do You PHP はてブロ

    via. http://d.hatena.ne.jp/uratch/20100303/1267587165、2010-03-18 - ます’s Diary - どうでもいい事100選 前のエントリにも続きますが、Javaっぽく書くのであれば、例外を使うのもそうかもしれません。 一番のメリットが、ロジックの中にCライク(?)な"戻り値が0だったら〜、そうじゃなかったら〜"みたいな処理を書かなくて済むのと、例外をcatchする箇所を絞って、エラー処理をまとめて書ける事じゃないかと思います。 たとえば、"DBに繋いでデータを取得するコード"を考えてみます。例外を使わない場合は次のようなコード。 <?php $conn = oci_connect("scott", "tiger", $db); if ($conn === false) { // エラー処理 } $stmt = oci_parse(

    例外を使う - Do You PHP はてブロ
  • PHP5、PHPエラーを例外(Exception)へ変換 - goungoun技術系雑記帳

    ネタ元は↓こちら。 【Alex@Net】try/catch構文を用いてPHPコアで注意や警告を扱う方法 - PHPプロ!ニュース: http://www.phppro.jp/news/185 PHP5で例外(Exception)が使えるようになった。 PHPエラー(NOTICEとか)を例外へ変換することで、PHPに関する全てのエラーを 例外として扱うことができる。 ネタ元では、PHPエラーが発生したファイル名、行番号を Exception へ変換する処理が無いので、これを実装することを考えてみた。 流れは次の通り。 PHPエラー ↓ PHPエラーハンドラへ ↓ PHPエラーを MyException に変換して throw 以下参照しました。 PHP: 例外(exceptions) - Manual: http://jp.php.net/manual/ja/language.excepti

  • PHPの組み込み関数で例外を発生させる方法

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

  • 1