知识点:
大部分时候我们的代码总有各种各样的bug,新手程序员(比如我)最经常的工作就是不停的报错和echo变量,一个好的异常处理类可以帮我们更快+更容易理解报错代码的问题,同时,异常处理还可以避免一些因为程序错误而泄露网站重要信息内容的提示(比如文件报错,会弹出根目录),此外异常处理还可以协助项目上的正则验证,文件上传提示,访问权限控制等提高项目体验的功能。
代码:
<?php
header("Content-type: text/html; charset=utf-8");
/*
PHP异常处理常用函数:
1、getCode();得到传递给构造函数的错误代码
2、getFile();返回抛出异常的文件名
3、getLine();返回抛出异常的行号
4、getMessage();返回传递给构造函数的消息
5、getPrevious();返回前一个异常变量
6、getTrace();返回一个数组,包括错误的文件名、行号、函数名、函数参数。
*/
class exctest{
var $filename;//文件名
var $fileexten;//文件后缀
public function __construct($file){
$this->filename = $file;
$this->fileexten = pathinfo($file, PATHINFO_EXTENSION);
}
public function checkexist(){
try{
if(!file_exists($this->filename)){
throw new exception(‘文件不存在!‘);
}
}catch(exception $e){
echo $this->filename.$e->getMessage()."<br>";
}
}
public function checkexten(){
$extens = array(‘gif‘,‘jpg‘,‘png‘,‘xlxs‘,‘xls‘,‘doc‘);
try{
if(!in_array($this->fileexten,$extens)){
throw new exception(‘文件类型错误!请上传下列格式的文件:‘);
}
}catch(exception $e){
$extens = implode(",",$extens);
echo $this->filename.$e->getMessage().$extens;
}
}
public function checkall(){
$this->checkexist();
$this->checkexten();
}
}
$a = new exctest(‘test.rar‘);
$a->checkall();
?>
效果图: