如果我有一个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:''examplep''htdocs''projekt''index.php:line5中有错误的值",而不是跟踪
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
阅读有点困难。
捕获异常。这是例外的要点。。它们是可捕获的,并且您可以对信息执行某些操作(例如..只输出消息)。
您可以这样做:
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
}
我捕捉到了
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();
}
谢谢你的提示。
简单,不要使用异常。它们应该在你尝试接球或特殊情况下使用。这并不是例外——这意味着只有if-else语句就不可能出错。
所以,只需回显您选择的错误信息。