下面来介绍一下关于php中异常处理的方法介绍,有需要学习的异常处理的朋友可参考本教程。
以下是引用片段:
1.允许一个方法给出一个出错标记给客户代码
2.提供程序错误的详细信息
3.让你同时判断多个出错条件,将你的错误报告和程序处理流程分开。
4.返回值必须是独立的类型,不会与正常返回的类型相混淆
两个实例掌握php异常处理
//例【1】用 try…catch
代码如下
/* pdo连接mysql数据库,如果没看过pdo,先看下pdo的构造函数,要不跳过例1看例2 */
$dsn = ‘mysql:host=localhost;dbname=testdb’;
$user = ‘dbuser’;
$password = ‘dbpass’;
try {
$dbh = new pdo($dsn, $user, $password); //创建数据库连接对象容易出现异常
echo ‘如果上面出现异常就不能显示我了’;
} catch (pdoexception $e) {
echo ‘connection failed: ‘ . $e->__tostring();
}
?>
例
代码如下
上面一个朋友说的,下面我自己来写了点程序练习一下:
以下是代码片段:
代码如下
$a = 20;
// 使用常规catch的例子
try
{
if($a == 1)
{
throw new exception(“i am 1”, 1);
}
elseif ($a == 2)
{
throw new exception(“i am 2”, 3);
}
elseif ($a == 3)
{
throw new exception(“i am 3”, 3);
}
elseif ($a == 4)
{
throw new exception(“i am 4”, 4);
}
else
{
throw new exception(“who am i ?”, 0);
}
}
catch (exception $e)
{
if($e->getcode() == 1)
{
echo “1 : “.$e;
}
elseif ($e->getcode() == 2)
{
echo “2 : “.$e;
}
elseif ($e->getcode() == 3)
{
echo “3 : “.$e;
}
elseif ($e->getcode() == 4)
{
echo “4 : “.$e;
}
else
{
echo “0 : “.$e;
}
}
echo “
——————————————————————————–
“;
// 使用不同的扩展异常类的例子
class a extends exception{};
class b extends exception{};
try
{
if($a == 1)
{
throw new a(“i am a”, 1);
}
elseif ($a == 2)
{
throw new b(“i am b”, 2);
}
else
{
throw new exception(“who am i ?”, 0);
}
}
catch (a $e)
{
echo “1 : “.$e;
}
catch (b $e)
{
echo “2 : “.$e;
}
catch (exception $e)
{
echo “0 : “.$e;
}
?>
输出如下:
以下是引用片段:
0 : exception ‘exception’ with message ‘who am i ?’ in d:webphpwwwnewtest.php:24 stack trace: #0 {main}
——————————————————————————–
0 : exception ‘exception’ with message ‘who am i ?’ in d:webphpwwwnewtest.php:69 stack trace: #0 {main}
http://www.bkjia.com/phpjc/629027.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/629027.htmltecharticle下面来介绍一下关于php中异常处理的方法介绍,有需要学习的异常处理的朋友可参考本教程。 以下是引用片段: 1.允许一个方法给出一个出…