免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

java定位異常堆棧中異常產生位置的方法-創(chuàng)新互聯(lián)

小編給大家分享一下java定位異常堆棧中異常產生位置的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)服務項目包括興業(yè)網(wǎng)站建設、興業(yè)網(wǎng)站制作、興業(yè)網(wǎng)頁制作以及興業(yè)網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,興業(yè)網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到興業(yè)省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

異常堆棧作為我們平時定位問題的最重要手段,為我們解決問題提供了很大幫助。但是我們可能都有這樣的習慣就是看到一段異常,尤其是異常堆棧很多,層次很深的時候。

就感覺很擔心害怕,匆匆掃描一眼就開始猜問題應該如何如何,然后不斷的根據(jù)猜測去調整代碼,雖然也會debug但是還是浪費了不少的時間。

這是因為:

1.我們沒有認認真真的看異常堆棧信息;

2.堆棧太多,我們并不確定到底哪里導致了問題。

解決辦法就是:

1.知道異常堆棧產生的流程。

2.耐心的閱讀堆棧信息。

3.解決問題

1.異常產生流程:上面報錯,下面跟隨

舉個例子:我們有如下的測試代碼

package com.bsx.test;

public class TestException {
    public static void main(String[] args) {
        TestException exception = new TestException();
        exception.m1();
    }

    public void m1() {
        m2();
    }

    public void m2() {
        m3();
    }

    public void m3() {
        String name = null;
        System.out.println(name.length());
    }
}

執(zhí)行之后輸出結果如下:

Exception in thread "main" java.lang.NullPointerException
	at com.bsx.test.TestException.m3(TestException.java:22)
	at com.bsx.test.TestException.m2(TestException.java:17)
	at com.bsx.test.TestException.m1(TestException.java:13)
	at com.bsx.test.TestException.main(TestException.java:9)

我們可以看到,這個錯誤日志輸出的順序跟調用順序是相反的,為什么呢?

我們知道java的方法在執(zhí)行的時候是在虛擬機棧中執(zhí)行的,每執(zhí)行一個方法就會新建一個棧幀然后壓入到虛擬機棧中。

這是一個后進先出的結構,所以報錯的時候也是從被調用者最開始報錯,然后調用者依次報錯,所以打印錯誤時的順序也是報錯的位置在最上面,調用者依次向后排。由此我們可以得出結論:上面報錯,下面跟隨。

2.讀懂報錯信息:尋找我們代碼報錯的位置

從上面的分析我們知道報錯位置在上面。大部分情況下,最上方的報錯信息就是我們代碼出錯的位置。

但是有時候最上方的日志并不是我們自己的代碼,那是因為我們的代碼調用了一些三方jar包的代碼。但是這并不影響我們去定位問題,我們還是根據(jù)上面報錯,下面跟隨來定位問題,那么真正報錯的位置還是在上面。

那么我們只需要從上往下依次找我們自己的代碼即可。第一個找到的我們的代碼位置就是我們代碼中引發(fā)報錯的位置。有時候有些報錯信息很明顯,我們可以根據(jù)報錯信息來直接定位到問題癥結。

有時候報錯信息并不能很明確的指明報錯原因,這時候,我們就可以在這個精確的位置打上斷點來調試一下。

以上是java定位異常堆棧中異常產生位置的方法的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

標題名稱:java定位異常堆棧中異常產生位置的方法-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://m.newbst.com/article10/dcspgo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App設計網(wǎng)站排名外貿建站網(wǎng)站制作網(wǎng)頁設計公司云服務器

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化