gpt4 book ai didi

PHP:\Exception 或命名空间内的异常

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:37:44 24 4
gpt4 key购买 nike

我正在尝试处理我的 api 中的一些错误。但是我尝试了很多方法来执行完成所需的操作?

在代码中,我使用了 Exception,\Exception,另一个扩展到 Exception 的类,“use\Exception”。这些选项都不起作用。我需要做什么来执行 block 捕获?

  //Piece of source in the begin of file
namespace Business\Notifiers\Webhook;
use \Exception;
class MyException extends \Exception {}

//Piece of source from my class
try{

$products = $payment->getProducts();
if(count($products) == 0)
return;
$flight_id = $products[0]->flight_id;
$this->message = 'Sir, we have a new request: ';
$products = null; //Chagind it to null to force an error..
foreach($products as $product){

$this->appendAttachment(array(
'color' => '#432789',
'text' =>
"*Name:* $product->name $product->last_name \n" .
"*Total Paid:* R\$$product->price\n",
'mrkdwn_in' => ['text', 'pretext']
));
}
} catch(Exception $e){
$this->message = "A exception occurred ";
} catch(\Exception $e){
$this->message = "A exception occurred e";
} catch(MyException $e){
$this->message = "A exception occurred";
}

最佳答案

上面接受的答案给出了问题的真正原因,但没有回答主题

如果万一有人感兴趣并且正在寻找

命名空间内的 Exception 和\Exception 有什么区别?

对 PHP 7.3.5 仍然有效:

  1. \Exception:引用root命名空间中的Exception
  2. 异常:引用当前命名空间中的异常
  3. PHP 不会回退到根命名空间,如果在当前命名空间中找不到该类,它会发出错误。

<?php
namespace Business;
try {
throw new Exception("X"); // Uncaught Error: Class 'Business\Exception' not found
} catch (Exception $e) {
echo "Exception: " . $e->getMessage();
}

<?php
namespace Business;
class Exception extends \Exception {} // means \Business\Exception extends \Exception

$a = new Exception('hi'); // $a is an object of class \Business\Exception
$b = new \Exception('hi'); // $b is an object of class \Exception

关于PHP:\Exception 或命名空间内的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40064204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com