メソッドは、yamlファイルの再帰スキャンを実行し、それらを解析し、情報の一部を抽出します。私はyamlを解析するためにsfYamlParserを使用します。私は、tryブロックとキャッチ「例外の$ E」に()を解析するために呼び出しを囲んが、私はまだ、「致命的なエラーを取得:。キャッチされない例外をtry/catchブロックでキャッチされない例外
try{
$definition = $parser->parse(file_get_contents($filePath));//line 20
} catch(Exception $e) {
throw new Exception("Parsing model definiion '$filePath' failed.", 0, $e);
}
スニペットをスタックトレースから:
...Indexer.php(20): sfYamlParser->parse('type: com...') #3
?。なぜcatchブロックでキャッチされない例外はある 私はバブルアップに例外を期待していなかったし、その後、私の方法で漁獲さ COEは、名前空間されているが、「使用例外」が設定されている
エラーmesssage:。
をFatal error</b>: Uncaught exception 'InvalidArgumentException' with message 'Unable to parse line 30 (key; true).' in [...]/packages/fabpot-yaml/sfYamlParser.php:265
Stack trace:
#0 [...]/packages/fabpot-yaml/sfYamlParser.php(201): sfYamlParser->parse('type: s...')
#1 [...]/packages/fabpot-yaml/sfYamlParser.php(201): sfYamlParser->parse('explicitPrivile...')
#2 [...]/packages/hydra/source/com/daliaIT/hydra/Indexer.php(20): sfYamlParser->parse('type: com...')
#3 [...]/packages/co3/source/com/daliaIT/co3/PathHelper.php(97): com\daliaIT\hydra\{closure}('packages/hPacks...')
#4 [...]/packages/hydra/source/com/daliaIT/hydra/Indexer.php(28): com\daliaIT\co3\PathHelper->scanCallback('packages/hPacks...', 'hmd', Object(Closure))
EDIT:
[OK]を私は、私は致命的なエラーを取得していない別の例外をスローしない場合。申し訳ありませんが、元の例外メッセージではなく、定義したエラーメッセージでクラッシュすると思います。
EDIT:あなたは "新しい例外(" MESSAGE "0、$のprevious_exception)" を投げるとそうでない場合は
:
はPHPがキャッチされない例外に対処するiteresting方法を持っていると判明キャッチするPHPは$ previous_exceptionからのエラーメッセージを表示し、 "MESSAGE"以外のメッセージを表示します
上記で指定したキャッチブロックにスローする例外をキャッチしますか? – thetaiko
残りのスタックトレースはどのように見えますか? – thetaiko
例外は "$ parser-> parse(...)"によってスローされます。上記の例外をcatchするtpをキャッチしたいが、catchブロックは決して実行されない。 –