Variable/Dynamic Catch 块中的异常类型
Variable/Dynamic Exception Type in Catch Block
我正在尝试创建一个函数,该函数在被调用时传递一个可调用对象和一个异常“类型”,作为 ::class 字符串或类似的东西。这个想法是该函数将在 try/catch 块内调用回调。
示例函数:
public static function try(callable $callback, string $exceptionClass) : object | null {
try {
...
$callback();
...
catch($exceptionClass $e) {
...
}
}
我找到了 this 答案。但是我不确定如何获取类型。
你不能像这样在 catch 中使用变量:
try {
$callback();
} catch ($exceptionClass $e) {
}
你必须做这样的事情,你捕获所有的东西,然后有条件地检查异常类型:
try {
$callback();
} catch (\Throwable $e) {
if ($e instanceof $exceptionClass) {
}
}
我正在尝试创建一个函数,该函数在被调用时传递一个可调用对象和一个异常“类型”,作为 ::class 字符串或类似的东西。这个想法是该函数将在 try/catch 块内调用回调。
示例函数:
public static function try(callable $callback, string $exceptionClass) : object | null {
try {
...
$callback();
...
catch($exceptionClass $e) {
...
}
}
我找到了 this 答案。但是我不确定如何获取类型。
你不能像这样在 catch 中使用变量:
try {
$callback();
} catch ($exceptionClass $e) {
}
你必须做这样的事情,你捕获所有的东西,然后有条件地检查异常类型:
try {
$callback();
} catch (\Throwable $e) {
if ($e instanceof $exceptionClass) {
}
}