iOS开发------使用Xcode编译器定位抛出异常的位置

版权声明:本文为博主原创文章,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。 https://blog.csdn.net/RunIntoLove/article/details/51297734

虽然Objective-C对异常进行了封装,但日常敲代码的时候,往往会因为马虎,代码段出现了一点小小的错误,自己却发现不了。当然,很多时候,Xcode就会直接报错(也就是俗话说的崩了)告诉我们,这个时候只要根据报出的异常堆栈,就可以找到错误的具体位置。

可是有一种情况,相信大家肯定遇到过,程序不崩或者崩了但是没有告诉我们异常堆栈,但错误原因告诉我们了:

*** First throw call stack: 
(0x18336ae38 0x1829cff80 0x183e2495c 0x183ca5968 
0x183ca5550 0x183ca5100 0x1004cbdcc 0x1004cb454 
0x1884a80e4 0x185e4ea28 0x185e49634 0x185e494f4 
0x185e48b24 0x185e4886c 0x1884aaef4 0x183321124 
0x183320bb8 0x18331e8b8 0x183248d10 0x184b30088 
0x188515f70 0x1004c2e34 0x1 
libc++abi.dylib: terminating with uncaught exception of type NSException

 

从代码来看,我们肯定的是某个地方抛出了异常,但是”某个地方”对于程序员来讲是不是很崩溃呢,总之楼主会很崩溃,虽说最终能找到异常触发点,但总会浪费许多开发时间。这里就写一下如何让Xcode帮我们自动的定位到异常抛出位置,用来节约开发时间,希望能帮到看到博文的朋友。

不得不说Xcode这个编译器真的很强大,自己对它的了解越来越自感觉不够,这种情况,对Xcode进行相应的断点设定,就可以将代码定位到异常的抛出位置,当出现异常抛出的时候,Xcode就直接定位到该代码行:

1、找到Xcode的Breakpoint组,找到左下角的+键,位置如下图:

2、点击+键,能够添加新断点,项目用的是Objective-C,所以这里就添加一个异常断点,当然Swift也可以添加一个Error断点,根据不同的情况可以自定义添加。

3、添加完毕之后,这里就会出现一个全局的断点,从后面的描述可以看出,这个断点是所有异常的断点。

设置完毕后,再运行一次抛出异常的程序,此时断点就自动的停留在了抛出异常的语句上,如图:

这样开发者们就不需要在看不到异常堆栈的情况下,花大量时间来寻找异常抛出点了Thanks()
---------------------
作者:RITL
来源:CSDN
原文:https://blog.csdn.net/runintolove/article/details/51297734
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/chqj_163/article/details/83304555
今日推荐