错误处理与异常处理方法与实例教程
在程序开发中,错误处理这一块是非常重要的,今天本文章就来告诉他关于在php开发中,错误处理函数并且举例说明错误处理的重要性。
1、内置异常处理类。
2、捕获并处理异常的示例。
3、exception类的成员函数getmessage()。
4、exception类的成员函数getfile()。
5、exception类的成员函数getline()。
6、显示警告或错误信息。
7、自定义错误处理函数。
*/
// 1、内置异常处理类。
class exception
{
protected $message = 'unknown exception'; // 异常信息
protected $code = 0; // 用户自定义异常代码
protected $file; // 发生异常的文件名
protected $line; // 发生异常的代码行号function __construct($message = null, $code = 0);
final function getmessage(); // 返回异常信息
final function getcode(); // 返回异常代码
final function getfile(); // 返回发生异常的文件名
final function getline(); // 返回发生异常的代码行号
final function gettrace(); // backtrace() 数组
final function gettraceasstring(); // 已格成化成字符串的 gettrace() 信息function __tostring(); // 可输出的字符串
}
// 2、捕获并处理异常的示例。
try
{
$error = '抛出异常信息,并且跳出try块
';
if(is_dir('./test'))
{
echo '检测到../ch16是一个目录';
echo '
';
echo '可能继续做其他一些操作';
echo '
';
echo '....';
echo '
';
}
else
{
throw new exception($error,12345);
}
echo '上面throw异常的话,这行代码不会执行,转而执行catch块
';
}
catch(exception $e)
{
echo '捕获异常: ' . $e->getmessage() . "
错误代码:" . $e->getcode().'
'; //显示$error和123456
echo '
';
}echo '继续执行';
// 3、exception类的成员函数getmessage()。
$file = './test/readme.txt';
try
{
if(is_dir($file))
{
echo '检测到目录';
}
else
{
//创建异常对象,错误信息将有exception类的成员函数getmessage()返回
throw new exception('未找到该目录或文件');
}
}
catch(exception $e)
{
echo '捕获异常: ' . $e->getmessage();
echo '
===============================';
echo '
';
}echo '程序执行完毕';
// 4、exception类的成员函数getfile()。
$file = './test/readme.txt';
try
{
if(is_dir($file))
{
echo '检测到目录';
}
else
{
//创建异常对象,错误信息将有exception类的成员函数getmessage()返回
throw new exception('未找到该目录或文件');
}
}
catch(exception $e)
{
echo '捕获异常: ' . $e->getmessage();
echo '
';
echo '错误所在文件:'. $e->getfile();
echo '
===============================';
echo '
';
}echo '程序执行完毕';
// 5、exception类的成员函数getline()。
$file = './test/readme.txt';
try
{
if(is_dir($file))
{
echo '检测到目录';
}
else
{
//创建异常对象,错误信息将有exception类的成员函数getmessage()返回
throw new exception('未找到该目录或文件');
}
}
catch(exception $e)
{
echo '捕获异常: ' . $e->getmessage();
echo '
';
echo '错误所在文件:'. $e->getfile();
echo '
';
echo '错误所在行号:'. $e->getline();
echo '
===============================';
echo '
';
}echo '程序执行完毕';
// 6、显示警告或错误信息。
error_reporting(e_warning | e_error); //显示警告和错误信息
echo $uvar; //这里产生注意信息,但不会显示出来
callfunc(); //这里产生一个致命错误,并且会显示出来
// 7、自定义错误处理函数。
set_error_handler('myhandler'); //自定义错误处理函数function myhandler($code, $msg, $file, $line)
{
echo "
";
echo "程序 $file 执行过程中,在第 $line 行,产生一个错误。";
echo "
";
echo "错误代码为:$code, 错误的原因是: $msg";
}echo $uvar;
?>