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

i caught it

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();
}

thank you for hints.

于 2012-09-11T18:41:53.927 回答
-1

很简单,不要使用异常。当您进行尝试捕捉或特殊情况时,应该使用它们。这并非例外——这意味着仅使用 if-else 语句就不可能导致错误。

因此,只需回显您选择的错误消息即可。

于 2012-09-11T17:22:47.853 回答