php mysql try catch_php使用try catch 捕捉异常

* 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 = "

出现异常,如下:

";$message .= "

" . __CLASS__ . "[{$this->code}:{$this->message}]

";return $message;

}/****************自定义异常方法***************/

public functiontest()

{echo "这是自定义错误";

}public functionstop()

{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 functiongetDetails()

{switch ($this->code) {case 0:

return "没有提供文件";break;case 1:

return "文件不存在";break;case 2:

return "不是一个文件";break;case 3:

return "文件不可写";break;case 4:

return "非法文件的操作模式";break;

}

}

}classWriteData

{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 functionclose()

{if ($this->_fp) {if (!fclose($this->_fp)) throw new FileException($this->_message, 6);$this->_fp = null;

}

}public function__destruct()

{$this->close();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值