错误处理的最佳方法是什么?这就是我想出的:
class test {
public static function Payment($orderid, $total) {
if (empty($orderid) && empty($total)) {
return array('status' => 'fail', 'error' => 'Missing Data');
}
}
}
我听说过Try / Exceptions但是如何将其融入我的代码中?如果你能提供一个很棒的例子!
答案 0 :(得分:5)
如果使用PHP 5,则可以处理异常错误:
http://fr2.php.net/manual/en/class.exception.php
这种方式比手动设置异常消息更清晰,因为您可以访问try catch系统并且可以隔离异常处理
答案 1 :(得分:3)
如上所述,使用Exceptions。特定于您的示例,如果某些条件失败,您throw
会出现异常。然后,当您调用可以抛出异常的方法时,使用try/catch
处理块将其包装起来。
class test {
public static function Payment( $orderid, $total ) {
if (empty( $orderid ) && empty( $total )) {
throw new Exception('Missing Data');
}
}
}
try {
test::Payment("1", "2"); //should be fine
test::Payment(); //should throw exception
} catch (Exception $e){
echo $e;
//do other things if you need
}
答案 2 :(得分:1)
答案 3 :(得分:1)
以下是修改代码以使用异常的方法。它还有助于记录抛出异常的情况。
class test {
/**
* [method description]
* @throws Exception if the order ID or total is empty
*/
public static function Payment($orderid, $total) {
if (empty($orderid) && empty($total)) {
throw new Exception("fail: Missing Data");
}
}
}
如果要在异常中包含额外数据,也可以创建自己的异常类。
class MyException extends Exception{
public $status, $error;
public function __construct($status, $error){
parent::__construct("$status: $error");
$this->status = $status;
$this->error = $error;
}
}
答案 4 :(得分:0)
我倾向于倾向于抛出异常,然后使用try / catch机制来处理善后事宜。手册页位于:http://php.net/manual/en/language.exceptions.php
答案 5 :(得分:0)