例外をスローする関数をphpで宣言できますか?例えば:
public function read($b, $off, $len) throws IOException
PHPDocコメントで@throwsを使用すると、IDEはドキュメントを表示するときにこの関数を例外をスローするものとして認識しますが、Javaとは異なり、Try{}catchブロックの実装を強制することはありません。おそらく、IDEの将来のバージョン(私はInteliJ 11を使用しています)は、不整合を認識するときにdoc(String}など)でマークされたJavaScriptタイプですでに行っているのと同じように、try{}catchが期待される場所をマークします。
要するに、スクリプト言語(PHP、JavaScript ..)でコーディングするときのようにDocletを使用することは、タイプセーフではなくコンパイルされていない言語の場合に、より安全なプログラミングのための補完的なツールになります。
このような:
enter code here
/**
* Handle 'get' operations
* @abstract
* @param int $status reference for setting the response status
* @param String $body reference for setting the response data
* @return mixed
* @throws Exception if operation fail
*/
function get(&$status, &$body) {
}
私は質問を読み間違えました、Giladからの以下の答えを見てください(それは受け入れられるべきです)。
前の答え:
関数の本体から新しい例外をスローできます。それはすべてここで説明されています
例:
<?php
function inverse($x) {
if (!$x) {
throw new Exception('Division by zero.');
}
else return 1/$x;
}
try {
echo inverse(5) . "\n";
echo inverse(0) . "\n";
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
// Continue execution
echo 'Hello World';
?>
SPLに付属する例外のリストについては、SPLExceptionsを参照してください。
独自の例外を作成する場合:
PHPの例外ページから:
スローされるオブジェクトは、ExceptionクラスのインスタンスまたはExceptionのサブクラスである必要があります。そうでないオブジェクトをスローしようとすると、PHPの致命的なエラーが発生します。
そうです、独自の例外を作成することは可能です。少し読むだけで、あなたが望むことを達成するのに役立ちます。