0

c1.php がある場合

<?php
class C1 {
    function f1($value) {
        if($value == 'ok') {
            echo "OK!";
        } else {
            throw new Exception("WRONG!");
        }
    }
}
?>

およびindex.php

<?php
require_once('c1.php');
$c = new C1();
$c->f1('ok');
$c->f1('asd');
?>

トラックトレースの代わりに「エラー: C:\xampp\htdocs\projekt\index.php: 5行目に間違った値があります」のような読みやすいエラーメッセージを作成する方法を誰でも知っていますか?

OK!
Fatal error: Uncaught exception 'Exception' with message 'WRONG!' in
C:\xampp\htdocs\projekt\c1.php:7 Stack trace: #0 
C:\xampp\htdocs\projekt\index.php(5): C1->f1('asd') #1 {main} thrown in
C:\xampp\htdocs\projekt\c1.php on line 7

その読み方は少し難しいです。

4

4 に答える 4

3

例外をキャッチします。これが例外のポイントです..それらはキャッチ可能であり、情報を使用して何かを行うことができます(たとえば..メッセージだけを出力します)。

于 2012-09-11T17:25:23.263 に答える
2

次のようなことができます。

try {
    $c = new C1();
    $c->f1('ok');
    $c->f1('asd');
} catch(Exception $e) {
    echo 'Error: you have wrong value in ', $e->getFile(), ' on line ', $e->getLine();
    // ... code
}
于 2012-09-11T17:28:33.487 に答える
0

私はそれを捕まえた

try {
    ..
} catch(Exception $e) {
    //echo $e->getTraceAsString();
        $t = $e->getTrace();
        $t = $t[0];
        echo 'Error: file - ',$t['file'],' - line: ',$t['line'],
                  ' - function: ',$t['function'],'; ',$e->getMessage();
}

ヒントをありがとう。

于 2012-09-11T18:41:53.927 に答える
-1

Simple, don't use an exception. They should be used when you're doing a try-catch or for an exceptional situation. This is not exceptional - meaning nothing can possibly turn an error with just a if-else statement.

So just echo out the error message of your choice.

于 2012-09-11T17:22:47.853 に答える