PHP从调用方抛出异常

PHP从调用方抛出异常,php,exception,Php,Exception,是否可能引发一个异常,该异常似乎起源于函数的调用方,而不是被调用函数内部 function assert_foo(){ throw new CustomException(); } /* ... */ assert_foo(); // <-- I want the exception to seem to originate from here */ 函数断言_foo(){ 抛出新的CustomException(); } /* ... */ 断言_foo();// 更改此项:

是否可能引发一个异常,该异常似乎起源于函数的调用方,而不是被调用函数内部

function assert_foo(){
  throw new CustomException();
}

/* ... */

assert_foo(); // <-- I want the exception to seem to originate from here */
函数断言_foo(){
抛出新的CustomException();
}
/* ... */
断言_foo();// 更改此项:

function assert_foo()
{
   throw new CustomException();
}

/* ... */

assert_foo(); 
致:


现在你有了你想要的东西,即。你的异常将被视为来自AAAline

这是不可能的,如果你需要它来做某事(什么?),那么你走错了路。如果(!assert_foo())抛出新的CustomException()
,可能
?不,我真的很怀疑。让你的断言引发异常是相当疯狂的行为;他们应该立即停止执行,而不是提出可能被捕获和忽略的可接受异常。您需要内置的
assert
。您可以在调用assert\u foo时捕获异常,并从那里抛出定制的execption,模拟您想要实现的功能。它用于单元测试代码,目的不是停止执行,而是在开发过程中检测错误。可能
断言
是错误的命名。有什么解决办法吗?我想会有效果,但比我希望的要乏味一点。这正是你想要和要求的;-)。你可能不需要它,因为我不知道上下文,但就是这样。是的,你是对的。我希望能有一些神奇的东西来解决这个问题,而不用修改框架来显示完整的调用堆栈。
function assert_foo()
{
   throw new CustomException();
}

/* ... */

try
{
    assert_foo(); //AAA
}
catch(CustomException $ce )
{
  // create new and throw from here 
  throw new CustomException();
}