Home  >  Article  >  Backend Development  >  Basic methods of exception handling in php_PHP tutorial

Basic methods of exception handling in php_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 17:14:171034browse

The following is an introduction to the method of exception handling in PHP. Friends who need to learn exception handling can refer to this tutorial.

The following is a quote:

1. Allow a method to give an error flag to client code
2. Provide detailed information about program errors
3. Allows you to determine multiple error conditions at the same time and separate your error reporting and program processing flow.
4. The return value must be an independent type and will not be confused with the normally returned type

Master PHP exception handling with two examples

//Example [1] Use try...catch

The code is as follows Copy code
/* PDO connects to the mysql database, if you haven't seen it After passing PDO, first look at the constructor of PDO. Otherwise, skip Example 1 and look at Example 2 */
 代码如下 复制代码
/* 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();
}
?>
$dsn = 'mysql:host=localhost;dbname=testdb';

$user = 'dbuser';

$password = 'dbpass';
 代码如下 复制代码
//例[2] try..cathc 和 throw一起用
try {
$error = '我抛出异常信息,并且跳出try块';
if(is_dir('./tests')){
echo 'do sth.';
}else{
throw new Exception($error,12345);
}
echo '上面有异常的话就轮不到我了!~
',"n";
} catch (Exception $e) {
echo '捕获异常: ', $e->getMessage(),$e->getCode(), "n
"; //显示$error和123456
}
echo '继续执行';
?>
try { $dbh = new PDO($dsn, $user, $password); //Creating a database connection object is prone to exceptions echo 'If there is an exception above, I will not be displayed'; } catch (PDOException $e) { echo 'Connection failed: ' . $e->__toString(); } ?>
Example
The code is as follows Copy code
',"n"; } catch (Exception $e) { echo 'Catch exception: ', $e->getMessage(),$e->getCode(), "n
"; //Display $error and 123456 } echo 'Continue execution'; ?>

A friend said it above, so I will write some programs myself to practice:

The following is the code snippet:

} elseif ($a == 2)
The code is as follows
 代码如下 复制代码


$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;
}

?>
 

Copy code


$a = 20;

//Example of using regular catch

try

{
if($a == 1)
{

​ ​throw new Exception("I am 1", 1);
{ ​ ​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 " -------------------------------------------------- ---------------------------------- "; //Examples of using different extended exception classes 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; } ?> The output is as follows: The following is a quote: 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.htmlTechArticleThe following is an introduction to the method of exception handling in php. Friends who need to learn exception handling can refer to this article Tutorial. The following is a quoted fragment: 1. Allow a method to give an output...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn