php异常处理--try,throw,catch

php进行异常处理时,由于要避免一个系统漏洞与错误被黑客发现,一般都使用白屏模式使得错误不显示,同时又得使自己查看到错误的原因,因此,我们可以将错误写入文档作为日志进行查询,避免了不必要的系统漏洞。

/*

try //尝试做某一件事情,如果这件事情做的时候尝试异常,那么就跳到catch里面去执行
{
}
catch(Exception $e) //$e什么,$e其实一个来自Exception类的实例(对象) Exception $e = new Exception
{
}
*/

//概念:什么是错误?什么是异常?
//PHP里面错误认为有以下几种常见类型
//1.notice(注意,注意是可以不处理,可以忽略)
//2.Warning(警告,它属于中级错误,是必须处理,因为如果你不处理警告那么可能会产生代码的逻辑不能正常执行,warning错误后的代码会照样执行)

//3.error(致命性错误,是必须修改的,否则代码无法运行,系统会崩溃)


//如果要自定义错误那么就不要使用error_reporting(0);
ini_set( "display_errors","off" );
ini_set( "error_log","my_phperror/error.txt" );//将错误日志写入指定文档
echo $var; 
echo "<br />";
error_log( "这里还能执行1?" );
echo gettype();

error_log( "这里还能执行2?" );


echo "<br />";
//getype();
error_log( "这里还能执行吗3?" );
echo "<br />###这里可以被执行#<br />";

/********************************************
自定义数据库异常类
1)链接异常类
2)选择数据库异常
3)操作数据库异常函数:
mysql_error() : 返回所有数据库操作错误信息(string)
mysql_errno() : 返回所有数据库操作错误代码(int)
mysql_select_db() : 返回一个选择数据库的布尔值信息,成功为true,失败为false  (boolean)    
mysql_query() : 操作数据库返回是混合数据类型失败返回false,其他返回相关相信 (mixed)
mysql_connect():返回数据库的链接资源,成功返回resource ,失败返回flase( resource & boolean )
异常类的构造方法:
public __construct ([ string $message = "" [, int $code = 0 [, Exception 
$previous = NULL ]]] )
*********************************************/

define( "ERROR_LOG" , "error_logs/"  );
//链接异常的处理类
class connectException extends Exception
{
	function Handle( $config )
	{
		$date = date( "Ymd" );
		$log_file = ERROR_LOG."connect/mysql_error_{$date}.txt";//异常文件存储位置
		echo "<br />处理数据链接异常,生成错误日志处理文档(mysql_error_{$date}.txt)<br />";
		$string ="链接数据库失败了".var_export( $config , true );
		file_put_contents( $log_file,$string );
	}
}
//选择数据库的处理类
class selectException extends Exception
{
	function Handle( $dbName )
	{
		$date = date( "Ymd" );
		$log_file = ERROR_LOG."select/selectdb_error_{$date}.txt";<span style="font-family: Arial, Helvetica, sans-serif;">//异常文件存储位置</span>
		echo "<br />处理数据选择异常,生成错误日志处理文档(selectdb_error_{$date}.txt)<br />";
		$string ="选择数据库失败了,可能".$dbName."不存在";
		file_put_contents( $log_file,$string );
	}
}
//操作数据异常
class execException extends Exception
{
	function Handle( $sql )
	{
		$date = date( "Ymd" );
		$log_file = ERROR_LOG."exec/exec_error_{$date}.txt";<span style="font-family: Arial, Helvetica, sans-serif;">//异常文件存储位置</span>
		echo "<br />sql异常,生成错误日志处理文档(exec_error_{$date}.txt)<br />";
		$string ="sql操作失败了,错误操作语句".$sql;
		file_put_contents( $log_file,$string );
	}
}


/**
http://php.net/manual/en/function.error-log.php
http://php.net/manual/en/function.ini-set.php
**/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕斯先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值