Home >Backend Development >PHP Tutorial >PHP exception handling, PHP exception catching_PHP tutorial

PHP exception handling, PHP exception catching_PHP tutorial

WBOY
WBOYOriginal
2016-07-12 08:52:231003browse

php exception handling, php exception catching

Using the try{thow}catch(){} exception handling structure, you can effectively control multiple lines of code that may cause exceptions, basic model As follows:

<?<span>php
</span><span>try</span><span>
{
throw </span><span>new</span> Exception(<span>"</span><span>错误信息</span><span>"</span>;) <span>//</span><span>抛出一个错误</span><span>
}     
</span><span>catch</span>(Exception $e)  <span>//</span><span>捕获错误信息,Exception是一个内置的错误处理类</span>
<span>{
echo $e</span>->getMessage(); <span>//</span><span>输出错误信息</span>
echo $e->getCode(); <span>//</span><span>返回异常代码</span>
echo $e->getFile(); <span>//</span><span>返回发生异常的文件</span>
echo $e->getLine(); <span>//</span><span>返回发生异常的行号</span>
<span>}

</span>?>

Exception prototype:

<?<span>php
</span><span>class</span><span> Exception
{
    </span><span>protected</span> $message = <span>'</span><span>Unknown exception</span><span>'</span>;   <span>//</span><span> 异常信息</span>
    <span>private</span>   $<span>string</span>;                          <span>//</span><span> __toString cache</span>
    <span>protected</span> $code = <span>0</span>;                        <span>//</span><span> 用户自定义异常代码</span>
    <span>protected</span> $file;                            <span>//</span><span> 发生异常的文件名</span>
    <span>protected</span> $line;                            <span>//</span><span> 发生异常的代码行号</span>
    <span>private</span>   $trace;                           <span>//</span><span> backtrace</span>
    <span>private</span>   $previous;                        <span>//</span><span> previous exception if nested exception</span>

    <span>public</span> function __construct($message = <span>null</span>, $code = <span>0</span>, Exception $previous = <span>null</span><span>);

    final </span><span>private</span> function __clone();           <span>//</span><span> Inhibits cloning of exceptions.</span>
<span>
    final </span><span>public</span>  function getMessage();        <span>//</span><span> 返回异常信息</span>
    final <span>public</span>  function getCode();           <span>//</span><span> 返回异常代码</span>
    final <span>public</span>  function getFile();           <span>//</span><span> 返回发生异常的文件名</span>
    final <span>public</span>  function getLine();           <span>//</span><span> 返回发生异常的代码行号</span>
    final <span>public</span>  function getTrace();          <span>//</span><span> backtrace() 数组</span>
    final <span>public</span>  function getPrevious();       <span>//</span><span> 之前的 exception</span>
    final <span>public</span>  function getTraceAsString();  <span>//</span><span> 已格成化成字符串的 getTrace() 信息
</span>
    <span>public</span> function __toString();               <span>//</span><span> 可输出的字符串</span>
<span>}
</span>?> 

At the same time, a try can also be associated with multiple catch blocks, and a custom class can be implemented by inheriting the Exception class

<?<span>php
  </span><span>class</span> myException1 extends Exception{}  <span>//</span><span>根据需要自定义</span>
  <span>class</span><span> myException2 extends Exception{}
  </span><span>class</span><span> myException3 extends Exception{}
  </span><span>try</span><span>{
    </span><span>switch</span>(<span>1</span><span>){
      </span><span>case</span> <span>1</span>:<span>throw</span> <span>new</span><span> myException1();
      </span><span>case</span> <span>2</span>:<span>throw</span> <span>new</span><span> myException2();
      </span><span>case</span> <span>3</span>:<span>throw</span> <span>new</span> myException3(); <span>//</span><span>当找不到对应的catch代码块时,将会抛到Exception处理,因为myException3继承了Exception</span>
<span>    }
  }
  </span><span>catch</span><span>(myException1 $e){
    echo </span><span>"</span><span>自定义错误1</span><span>"</span><span>;
  }
  </span><span>catch</span><span>(myException2 $e){
    echo </span><span>"</span><span>自定义错误2</span><span>"</span><span>;
  }
  </span><span>catch</span><span>(Exception $e){
    echo </span><span>"</span><span>原始异常类</span><span>"</span><span>; 
  }
</span>?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1127597.htmlTechArticlephp exception handling, php exception capture uses try{thow}catch(){} exception handling structure, which can be effective Control multiple lines of code that may cause exceptions. The basic model is as follows: ? php try {throw new Exc...
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