PHP应用技巧:如何将代码中的通知和警告删除
时间:2008-04-14 来源:剑心通明
【PHPChina讯】警告有时可以从一些代码中删除,当代码中弹出警告提示时,用户可进行适当选择,其中包括将它们写在错误日志中,或完全忽视。而Alexander Netkachev却有不同的解决方案——通过内建在
[url=javascript:;]PHP[/url]
中的例外
[url=javascript:;]报告[/url]
来处理、
该编码技巧将展示如何通过try/catch语句以例外的方式来处理PHP通知和警告。
尽管这是一个很简单的方案,但却完全可以帮助用户将所有的错误信息存储在同一位置。Alexander Netkachev所提供的代码示例既展示了基本的解决方案,也展示了其复杂的一面。另外,还为不同的例外类型提供了更详细的信息。
代码如下:
function errorHandler($errno, $errstr, $errfile, $errline) {
throw new Exception($errstr, $errno);
}
set_error_handler('errorHandler');
try {
file_put_contents('cosmos:\\1.txt', 'asdf');
} catch (Exception $e) {
echo $e->getMessage();
}
The code above throws an exception because the file cannot be saved. Then the exception is caught by the try/catch statement. With a little bit of additional error processing you can create even more reliable code:
class IOException extends Exception {}
function errorHandler($errno, $errstr, $errfile, $errline) {
if (false !== substr('failed to open stream', $errstr)) {
throw new IOException($errstr, $errno);
}
throw new Exception($errstr, $errno);
}
set_error_handler('errorHandler');
try {
file_put_contents('cosmos:\\1.txt', 'asdf');
} catch (IOException $e) {
echo 'IO exception: ' . $e->getMessage();
} catch (Exception $e) {
echo 'Unknown exception: ' . $e->getMessage();
}
原文地址:
http://www.phpfreaks.com/articles/1964/0.php
[url=javascript:;]PHP[/url]
中的例外
[url=javascript:;]报告[/url]
来处理、
该编码技巧将展示如何通过try/catch语句以例外的方式来处理PHP通知和警告。
尽管这是一个很简单的方案,但却完全可以帮助用户将所有的错误信息存储在同一位置。Alexander Netkachev所提供的代码示例既展示了基本的解决方案,也展示了其复杂的一面。另外,还为不同的例外类型提供了更详细的信息。
代码如下:
function errorHandler($errno, $errstr, $errfile, $errline) {
throw new Exception($errstr, $errno);
}
set_error_handler('errorHandler');
try {
file_put_contents('cosmos:\\1.txt', 'asdf');
} catch (Exception $e) {
echo $e->getMessage();
}
The code above throws an exception because the file cannot be saved. Then the exception is caught by the try/catch statement. With a little bit of additional error processing you can create even more reliable code:
class IOException extends Exception {}
function errorHandler($errno, $errstr, $errfile, $errline) {
if (false !== substr('failed to open stream', $errstr)) {
throw new IOException($errstr, $errno);
}
throw new Exception($errstr, $errno);
}
set_error_handler('errorHandler');
try {
file_put_contents('cosmos:\\1.txt', 'asdf');
} catch (IOException $e) {
echo 'IO exception: ' . $e->getMessage();
} catch (Exception $e) {
echo 'Unknown exception: ' . $e->getMessage();
}
原文地址:
http://www.phpfreaks.com/articles/1964/0.php
相关阅读 更多 +
排行榜 更多 +