欢迎光临
我们一直在努力

PHP出现异常该怎么办

本篇文章给大家介绍一下解决PHP出现异常的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

<?php /****************************************************  * php处理异常  * try中不主动throw,会先出现PHP的系统错误  ****************************************************/ header("content-type:test/html:charset=utf-8"); error_reporting(-1); try {     $num1 = 3;     $num2 = 0;     if ($num2 == 0) {         throw new Exception("自定义错误");     } else {         $res = $num1 / $num2;     }  } catch (Exception $e) {     echo $e->getMessage();     // die(); // 终止异常 } /******************************************************  * php+mysql+pdo  *****************************************************/ try {     $pdo = new PDO("mysql:host=localhost;dbname=mysql", "root", ""); } catch (PDOException $e) {     echo $e->getMessage();     // die(); // 终止异常 } /******************************************************  * php+文件异常  *****************************************************/  /**  * PHP 读取大文件 SplFileObject :  * https://blog.csdn.net/ekliu/article/details/8855907  */ // SqlFileObject相对于传统的open($filename, 'r')产生的对象的优点在于不需要打开文件句柄  不需要关闭句柄更加的方便 $handle = new SplFileObject("sid_list.txt"); while (!$handle->eof()) {     $item = $handle->fgets(); }  try {     $pdo = new SplFileObject("text.txt", "r");     echo "read File"; } catch (Exception $e) {     echo $e->getMessage();     // die(); // 终止异常 } /******************************************************  * php异常 嵌套  *****************************************************/ try {     throw new Exception("测试异常1"); } catch (Exception $e) {     echo $e->getMessage();     // die(); // 终止异常     try {         throw new Exception("测试异常2");     } catch (Exception $e) {         echo $e->getMessage();     } }  /******************************************************  * php异常 自定义异常封装  *****************************************************/ class MyException extends Exception {     public function __construct($message = "", $code = 0, $previous = null)     {         parent::__construct($message, $code, $previous);     }      public function __toString()     {         $message = "<h2>出现异常,如下:</h2>";         $message .= "<p>" . __CLASS__ . "[{$this->code}:{$this->message}]</p>";         return $message;     }      /****************自定义异常方法***************/     public function test()     {         echo "这是自定义错误";     }      public function stop()     {         exit("异常 end...");     } }  // 开始调用 MyException try {     echo "出现异常啦";     throw new MyException("测试自定义异常", 3); } catch (MyException $e) {     echo $e->getMessage(); }  // 嵌套使用 MyException 与 Exception (没有顺序) try {     throw new MyException("测试自定义异常"); } catch (Exception $e) {     echo $e->getMessage(); } catch (MyException $e) {     echo $e->getMessage(); }  /******************************************************  * php异常 自定义异常封装    文件  *****************************************************/ class FileException extends Exception {     public function getDetails()     {         switch ($this->code) {             case 0:                 return "没有提供文件";                 break;             case 1:                 return "文件不存在";                 break;             case 2:                 return "不是一个文件";                 break;             case 3:                 return "文件不可写";                 break;             case 4:                 return "非法文件的操作模式";                 break;         }     } }  class WriteData {     private $_message = "";     private $_fp = null;      public function __construct($filename = null, $mode = "w")     {         $this->_message = "文件:{$filename} ; 模式:{$mode}";         if (empty($filename)) throw new FileException($this->_message, 0);         if (!file_exists($filename)) throw new FileException($this->_message, 1);         if (!is_file($filename)) throw new FileException($this->_message, 2);         // is_writable vps云服务器 — 判断给定的文件名是否可写         if (!is_writable($filename)) throw new FileException($this->_message, 3);         if (!in_array($mode, array("w", "w+", "a", "a         +"))) throw new FileException($this->_message, 4);          $this->_fp = fopen($filename, $mode);     }      public function write($data)     {         if (@!fwrite($this->_fp, $data . PHP_EOL)) throw new FileException($this->_message, 5);     }      public function close()     {         if ($this->_fp) {             if (!fclose($this->_fp)) throw new FileException($this->_message, 6);             $this->_fp = null;          }     }      public function __destruct()     {         $this->close();     } }

推荐学习:php视频教程

本文来源网站:info110.com,若侵权,请联系删除。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。