为此,我使用了Runtime.getRuntime().halt(0)。但是在调用halt()之后,VM仍然存在,我可以终止它的唯一方法就是在OSX上使用Force Kill。nid=0x11d467000 runnable [11d464000] at java.lang.Shutdown.halt0(Native Method) - l
什么指令导致Xcode中的硬破坏?例如,在Visual下,我可以执行'_asm int 3‘或'DebugBreak()’。在某些GCC实现下,它是asm(“断开0")或asm(”陷阱“)。作为参考,这是一个断言宏。我不想使用assert.h中的定义,这既是为了便于移植,也是因为它们似乎在XCode提供的版本中执行了abort()。
Chris --谢谢您的评论,但是有很多理由可以避免将代码
Slim的文档读取了有关框架的halt方法的以下内容:
Slim应用程序的halt()方法将立即返回带有给定状态代码和主体的HTTP响应。此方法接受两个参数: HTTP状态代码和可选消息。例如:$app->halt(500);
//Or if you encounter a Balrog...$app->halt(403, 'You shall not pass!');
sinatra.error']}")如果错误是由显式引发异常引起的,则可以正常设置sinatra.error变量 raise "Fail the request"但是,如果使用halt查看sinatra代码,这似乎是预期的,因为抛出:halt会导致控制流一直向上调用,从而绕过sinatra.error变量的设置。