读得好错误?

时间:2012-09-11 17:10:54

标签: php

如果我有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 个答案:

答案 0 :(得分:3)

抓住异常。这是例外的点......它们是可捕获的,你可以对信息做一些事情(例如..只输出消息)。

答案 1 :(得分: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
}

答案 2 :(得分: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();
}

谢谢您的提示。

答案 3 :(得分:-1)

简单,不要使用例外。当你正在尝试捕捉或特殊情况时,应该使用它们。这并不例外 - 这意味着只有if-else语句就不会有任何错误。

所以只需回显你选择的错误信息。