1

私は仕事をすることができませんtry。私はこれを試しました:

try {
    echo 1/0;
    } catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
    }

エラーの結果:

Warning: Division by zero in /var/www/vhosts/saliganando.com/webs/momemi/apis/interpret-bot.php on line 6 

error_reporting() と ini_set() を変更しようとしましたが、警告を削除するか表示することしかできませんでしたが、「Caught exception...」は表示されません。

私は何を間違っていますか?

4

1 に答える 1

4

そのコードは決して例外を生成しません。警告を生成します。そのエラーを処理するには、( を使用して) エラー ハンドラ内で警告をキャプチャする必要がありset_error_handler()ます。

探している機能を模倣するものを含め、例外がどのように機能し、それらをキャッチするかについての多くの例については、例外に関するドキュメントを参照してください。

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";
}

生成するもの:

0.2
Caught exception: Division by zero.
于 2013-02-23T03:32:38.953 に答える