文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php教程>PHP出现异常该怎么办

PHP出现异常该怎么办

时间:2021-06-01  来源:互联网

今天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 — 判断给定的文件名是否可写
       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出现异常该怎么办的详细内容,更多请关注php爱好者其它相关文章!

相关阅读更多 +
最近更新
排行榜 更多 +
元梦之星最新版手游

元梦之星最新版手游

棋牌卡牌 下载
我自为道安卓版

我自为道安卓版

角色扮演 下载
一剑斩仙

一剑斩仙

角色扮演 下载