我想做的是在类内抛出异常。
然后在执行时能够将其捕获。
LANG=C find . -type f -name *.jpg -regex '.*[ñ].*'
class api {
public function __construct($user_id, $token) {}
public function post($data) {
throw new customException\Post('Error 1');
}
}
我如何使类似的东西起作用?
我无法让try {
$api = new api('id','key');
$output = $api->post($data);
} catch(customException\Post $e) {
var_dump($e);
} catch(exception $e) {
var_dump($e);
}
那样工作……为什么?
使用customException\Post
时出现此错误:
customException
答案 0 :(得分:1)
如果您不使用名称空间:
<?php
class CustomException_Post extends Exception {}
class api {
public function __construct($user_id, $token) {}
public function post($data) {
throw new CustomException_Post('Error 1');
}
}
$data = [];
try {
$api = new api('id','key');
$output = $api->post($data);
} catch (CustomException_Post $e) {
var_dump($e);
} catch (Exception $e) {
var_dump($e);
}
如果是的话,则需要一个自动加载器,假设您正在使用作曲器,则在添加psr4自动加载项后会看起来像这样:
在CustomException
文件夹中,名为Post.php
的文件。
<?php
namespace CustomException;
class Post extends \Exception {}
然后在您的代码中可以使用:
<?php
use CustomException;
class api {
public function __construct($user_id, $token) {}
public function post($data) {
throw new CustomException\Post('Error 1');
}
}
$data = [];
try {
$api = new api('id','key');
$output = $api->post($data);
} catch (CustomException\Post $e) {
var_dump($e);
} catch (\Exception $e) {
var_dump($e);
}