1. 程式人生 > >iOS開發------使用Xcode編譯器定位丟擲異常的位置

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
版權宣告:本文為博主原創文章,轉載請附上博文連結!