Closed fesily closed 2 years ago
不明白你在说什么
比如说我只打开uncaught errors,但是没有选择上面的异常类型,那么任何异常都不会被捕获,如果我选了异常类型,则无论我选没选 uncaught errors都会被捕获到(无论他是不是在pcall/xpcall里面执行),等于说下面的Caught Errors By lua和 Caught Errors By Native. uncaught errors三个选项没有任何用处
uncaught errors
是指没有被任何错误处理捕获的错误,对于lua而言这种错误的结果是crash。
而你举的例子,用lua.exe测试的结果,错误是被lua.exe的lua_pcall捕获,所以不算是uncaught errors
。
第一个例子,被捕获的异常的Native errors,不是uncaught errors,问题是我没选Caught Errors By lua和 Caught Errors By Native.不应该是被捕获的异常都不会提示才对.
前五个选项是根据错误类型分类,后三个是根据错误被捕获的方式分类,两者不互斥。
准确说问题在于,我只想捕捉一切未在pcall xpcall包裹的异常,目前的配置应该做不到吧,之前的版本是可以的。如果只选uncaught 前五类不选的话目前不会提示异常界面。就如我第二个例子
只选uncaught errors
和caught errors by native
就可以
👌🏻 这个地方有些迷惑性
打开所有断点设置. 除了Caught Errors By lua和 Caught Errors By Native. 这个时候行为应该是不捕捉,因为这个是被pcall包裹的错误. 但是会被Native Errors捕捉 getExceptionCaught(errcode) 读取的是
lua
,errcode
是2只打开uncaught errors,但是不被捕捉. getExceptionCaught(errcode) 读取的是
native
,errcode
是2