タグ

catchに関するkiyo_hikoのブックマーク (9)

  • Page not found - ファイヤープロジェクト

    The page you are trying to reach does not exist, or has been moved. Please use the menus or the search box to find what you are looking for.

    kiyo_hiko
    kiyo_hiko 2013/06/06
    メモ。catchは(catch 'tag @body)で@bodyの最後の評価値を返す。が、(throw 'tag x) を受けた場合catch全体がxに評価される。某書の値検索関数がすごかった→(defun search (x xs) (if (null xs) (throw x 0) (1+ catch (car xs) (search x (cdr xs))))))
  • PHP プログラマが "@" を使うべきでない 5 つの理由 - 肉とビールとパンケーキ by @sotarok

    #釣りっぽいタイトルですが大まじめです via. PHP 逆引きレシピ - 肉とご飯と甘いもの @ sotarok で、 @ (エラー制御演算子といいます!)はねーよ的な話をしましたが、著者の方から、「@に対して批判的になる理由が記載されていない」とのメールをいただきました。確かにその通りでした。実は理由を下書きのときには書いたのですが、長くなってしまったので削ってポストしたのですが、かえってわかりづらくなってしまいましたね.すみません。 ということで、PHPプログラマが、エラー制御演算子「@」使うべきでない 5 つの理由を述べます. 始める前に、質的なところ 色々理由はつけようと、やっぱり前回述べた、 終的に$qに入るものが同じであることと、コードとして同じ意味であるかは、別じゃないでしょうか。 が一番質的な話で、それ以上の話ではありません。 つまり、発生する可能性があるとわかってい

    PHP プログラマが "@" を使うべきでない 5 つの理由 - 肉とビールとパンケーキ by @sotarok
  • 欢迎光临-HB

    欢迎光临-HB 欢迎光临-HB。 <<<返回首页

    kiyo_hiko
    kiyo_hiko 2012/10/22
    rescueはStandardErrorクラスとそのサブクラスだけ捕捉するので、ひとまずensureしてExceptionを付けた箇所で捕まる?ということらしい
  • Ruby/例外処理の書き方 - 俺の基地

    普通に begin #例外が発生する処理 rescue raise $!.message + $@.to_s + "エラー発生したよ" end とりあえず今のところこんな風に書いてる。 発生した例外をrescueブロックで受け取って、情報を付加して もう一回例外を強制的に発生させてさらに上の呼び出し元へ処理をうつしている ▲ ▼ 局所的な例外を適当にハンドリング 一行ものは一行ものでハンドリングもできる hoge.piyo rescue p "えらーだよ"; raise "えらーだよ"; ▲ ▼ メソッドのスタックトレース 例外発生箇所からのメソッドの呼出階層を表示する定番のスタックトレースがあります。 そのブロックでうけた例外が格納される $@ というグローバル変数から得る方法と、オブジェクト指向っぽく例外オブジェクトのメソッドから得る方法があります。 この中にはメソッド名

  • Ruby Users' Guide - 例外処理

    プログラムの動作に例外的な状況はつきものだ.ファイルをオープ ンしようとすれば,ファイルが存在しないかも知れないし,書き込 もうとすれば,ディスクがいっぱいかも知れない.こういう状況を 考慮していないプログラムは品質が悪いといわれる. 問題は例外的な状況が発生したかどうかが,いちいち「今の処理は 大丈夫でしたか」と確認しなければ分からないことだ.例外的な状 況で処理が正しく行われていないのに続きを実行すれば,当然問題 が起きる.例外的な状況が発生したら,そのまま処理を続けてはい けないのだ. rubyではこういう例外的な状況では「例外」が発生する.特になに も対処しなければ,「例外」はプログラムの実行を中断する.これ で例外的な状況に対処せずに処理を続けてしまう心配は無い. ruby> file =open("/file_not_exist") ERR: No such file or d

    kiyo_hiko
    kiyo_hiko 2012/10/22
    読んだ / 「beginには「やり直し」の機能もある.これには`retry'を使う」→「無限ループに陥ってしまう.retryを使う時には,例外処理 に気を使った方が良い」→微妙。Perlだとopenは述語だからorでリトライ可能だが…。
  • EclipseでJavaの例外を理解する

    実行時に発生する例外 実行時に発生する例外はプログラミングエラーに対して使用されます。この例外はJavaではjava.lang.RuntimeExceptionクラスで表現されています。このサブクラスには、パラメータが不正であることを意味するjava.lang.IllegalArgumentExceptionや配列の添え字が範囲外であることを意味するjava.lang.IndexOutOfBoundsExceptionや、メソッドを呼び出そうとした変数がnullを参照していたことを意味するjava.lang.NullPointerExceptionといったものがあります。実行時に発生する例外のほとんどは、メソッドのAPI仕様に従わずにメソッド呼び出しを行うこと(事前条件違反、precondition violation)が原因です。例えば、次のプログラムはコンパイルエラーにはなりませんが、

    EclipseでJavaの例外を理解する
    kiyo_hiko
    kiyo_hiko 2012/03/22
    「実行時に発生する例外のほとんどは、メソッドのAPI仕様に従わずにメソッド呼び出しを行うこと(事前条件違反、precondition violation)が原因です」
  • Super Technique 講座~goto 文が有用な場合

    goto 文の利用とは、神学論争ではなくて、「リソースバランス」の問題である。この視点によって goto 文という議論の多いC言語機能を検討するのが、この論の目的である。goto 文の利用は「常に不可である」とする教条主義者はこんな論は読まずに、信仰の道を歩まれるのが良かろう。 リソースバランス 多重脱出 依存するリソース リソースバランス まず、「リソースバランス」という大変重要な問題について考えてみよう。「リソースバランス」とは、平たく言えば「使ったものは片付けなさい」ということに過ぎない。オープンしたファイルは必ずクローズするし、malloc(3) したメモリは必ず free(3) する。これを確実に行わないことには、いわゆる「メモリリーク」「リソースリーク」が起きて、長時間動作したり、大量のリソースを消費するプログラムでは、性能が制限されることになったり、OSの動作に悪影響(スラッ

    kiyo_hiko
    kiyo_hiko 2012/03/05
    例外処理機構なしでソース書くならgotoは積極的に使うべき gotoかわいいよgoto
  • 防御的プログラミング・例外(2) - Strategic Choice

    例外には継承と共通する特徴があります。それは、使いようによっては複雑さを軽減できますが、軽率な使い方をするとコードを理解することはほぼ不可能になってしまうことです。そこで、例外の利点を理解し、例外につきものの問題を避けるためのアドバイスを紹介します。例外の使用法◆無視すべきでないエラーは例外を使用してプログラムの他の部分に伝える例外の最大の利点は、無視できないような方法でエラー状態を知らせることです。他の方法でエラーを処理すると、コードを通じてエラー状態を伝達しても、気付かれない可能性があります。例外を使用すれば、そのような可能性がなくなります。◆当に例外的な状況でのみ例外をスローする例外は、「当に例外的な状況」、つまり他のコーディングプラクティスでは対処できない状況のために残しておきます。例外は、予想外の状況に対処する強力な手段と、コードの複雑さの増大とのトレードオフを考慮しなければ

    kiyo_hiko
    kiyo_hiko 2012/02/27
    「プログラミング原理のほとんどは、言語の種類ではなく、言語を使用する方法に依存」「言語の「中で」プログラミングしているプログラマは、自分の考えを言語が直接サポートしている構造だけに限定してしまいます」
  • 例外を正しく使えないプログラマ多いね。 その5 | ログ速@2ちゃんねる(net)

    kiyo_hiko
    kiyo_hiko 2012/02/06
    一杯あるのでそのうちゆっくり読む
  • 1