在一些 PHP 内置函数(例如mkdir
)中,在前面添加 @可以屏蔽该函数抛出的错误
那么自定义函数要如何实现这点呢?
我试了下throw new Exception
和trigger_error
都无法被@屏蔽
是这样的,例如我想写一个JsonFile::get()
方法,当文件不存在时抛个错、路径非法时抛个错、解码失败时抛个错,并返回false
当用户在意错误信息时可以自行捕捉并处理;当不在意错误信息只希望得到文件内容或 false (失败)时,可以 @JsonFile::get()
这样调用
主要也是为了方便嘛。请问如何实现这样的自定义方法(或函数)呢?
或者说我这样的思路不太好?有没有既方便又合理的实现方法呢?
黄舟2017-04-11 10:25:52
首先要保证语法没问题,然后好像和 throw new Exception和trigger_error 没关系了,上代码:
<?php
function test($abc){
mysql_connect("localhost", "用户名错误", "密码错误");
}
function test2($abc){
mysql_connect("localhost", "用户名错误", "密码错误");
}
test("abc");
@test2("abc");
?>
Warning: mysql_connect() [function.mysql-connect]: Access denied for user '用户名错误'@'localhost' (using password: YES) in D:Projectsns1.php on line 4
test2没有抛出 Warning.