PHP 的異常處理之try和catch用法小結

Corwien發表於2019-02-16

php 也有自己的異常處理方法,雖然比不上Java的強大,但是簡單的還是很容易處理的。

<?php

try{
$a = 2;

echo $a;
if($a > 200)
{
    throw new Exception (`更新管理平臺密碼失敗!`);
}
echo `ok`;

}
catch(Exception $e)
{
  echo $e->getMessage();

}

在資料庫中使用事物時,用該方法非常方便:

$state = 0;
  // 新增事物處理
try {
    // 開啟事物
    $GLOBALS[`db`]->beginTransaction();

    // 更新管理平臺密碼
    $state = $GLOBALS[`db`]->query("update admin_user set password=`$password_confirm` where user_id=$user_id");
    if($state != true)
    {
        throw new Exception (`更新管理平臺密碼失敗!`);
    }

    $ret = $this->modify_ldap_pwd($user_name, $user_password_old, $user_password_confirm);
    if(!$ret)
    {
        throw new Exception (`更新LDAP密碼失敗!`);
    }

    // 提交事物
    $GLOBALS[`db`]->commit();
    $state = 1;
}
catch (Exception $e)
{
    // 回滾
    $GLOBALS[`db`]->rollBack();
}

函式封裝處理:

define(`runcode`, 1);

function testE($num){
if($num == 1){
   return `hello`;
}else{
    throw new Exception ( "error");
}
}


try{

  $ret = testE(1);
  dump($ret);
  dump(100);

} catch (Exception $e ){

echo $e->getMessage();
dump(`丟擲了異常`);
}

相關文章