国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

            手機站
            千鋒教育

            千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

            千鋒教育

            掃一掃進入千鋒手機站

            領(lǐng)取全套視頻
            千鋒教育

            關(guān)注千鋒學(xué)習(xí)站小程序
            隨時隨地免費學(xué)習(xí)課程

            當(dāng)前位置:首頁  >  技術(shù)干貨  > JDBC操作時竟然NullPointerException!看我怎么一招搞定它

            JDBC操作時竟然NullPointerException!看我怎么一招搞定它

            來源:千鋒教育
            發(fā)布人:syq
            時間: 2022-09-20 10:25:14 1663640714

              一. 前言

              每一個程序猿在曲迂奮進的成神路上,都會遇到一些大大小小的妖魔和臭蟲阻礙,可以說這些bug會伴隨著我們整個的職業(yè)生涯。想當(dāng)年小編也是經(jīng)歷了無數(shù)次的痛苦撓頭,數(shù)不清的排錯與實驗,丟掉了不知道多少根頭發(fā),最后才以”半禿之身“成就了今天的自己。所謂"不經(jīng)風(fēng)雨,怎能見彩虹!不見bug,怎能成神",正是如此。

            NullPointerException

              今天小編就用自己十幾年的功力,來教大家如何解決我們開發(fā)路上遇到的常見bug。

              遇見bug,淡定莫慌!小編告訴你,心平氣和地對待bug,去分析,去排錯!

              二. NullPointerException異常

              為了更好的教會大家如何解決異常,今天小編就用一個Java開發(fā)時最常見的空指針異常來進行演示,我們一起來看看NPE異常的解決過程。如下圖所示:

            15 (1)

              在這里給大家準備了一個經(jīng)典的NPE空指針異常。當(dāng)出現(xiàn)上面問題的時候,有很多小白都會不知所措,遇到問題完全沒有頭緒,抓耳撓腮的就是不知道如何下手解決。也有一些稍微表現(xiàn)好點的同學(xué),會在第一時間進行百度,或者是問老師,問其他同學(xué),最后會知道自己遇到了大名鼎鼎的空指針異常,但至于為什么出現(xiàn)這個異常,則又完全沒有了頭緒。小編作為一個過來人,對小白的這些表現(xiàn)其實是感同身受的。

              今天就那么以NPE為例,帶著大家層層分析,一點點教會你如何解決異常。

              三. 異常分析

              1.NullPointerException

              首先我們要搞清楚,自己遇到的異常到底是什么?就比如我們今天所說的空指針,到底是怎么回事呢?

              java.lang.NullPointerException:空指針異常,是指我們在代碼中調(diào)用某個類對象時,結(jié)果在代碼執(zhí)行期間JVM虛擬機發(fā)現(xiàn)該對象沒有賦值,即值為null,此時就會出現(xiàn)NullPointerException異常。

              2.一個案例

              我們可以來看看給大家設(shè)計的下面這個案例。

              2.1 測試接口

              在下面的代碼中,我們會通過JDBC的方式,將數(shù)據(jù)庫表中的所有員工信息查詢并封裝到List集合中,并使用單元測試來測試接口功能。代碼如下:

            16 (1)

              2.2 查詢功能

              上面的代碼執(zhí)行之后,我們會在控制臺的異常信息中發(fā)現(xiàn),在第29行碼"com.qf.test.TestEmployee.testFindAllEmp(TestEmployee.java:29)"中出現(xiàn)了空指針問題。如果我們仔細觀察,會發(fā)現(xiàn)第29行代碼,又在調(diào)用第42行代碼:"com.qf.dao.impl.EmpDaoImpl.findAllEmp(EmpDaoImpl.java:42)"。我們繼續(xù)閱讀第42行代碼,如下圖所示:

            b27bdee0-013f-451f-b9c6-2370eab4fb2f_output

            18 (1)

              該方法的邏輯是要將查詢到的多條記錄都封裝到List集合中,而List集合里添加的是員工對象,我們上面代碼的錯誤提示的就是出現(xiàn)在這個方法中的第42行。而42行剛好就是我們從數(shù)據(jù)庫中得到每一行每一列的字段信息。

              細心的同學(xué)會看到,我們上面的Emp emp = null ; 這里只是聲明了Emp對象,但并沒new。我們每循環(huán)一次就表示會封裝一個員工信息到集合中,但卻沒有給emp對象賦值,所以此時emp對象就是null。

              這樣經(jīng)過層層摸排,我們就知道了產(chǎn)生空指針的真正原因所在,是因為我們沒有給某個對象賦值!那么該問題怎么解決呢?

              四. 解決辦法

              通過上面的代碼分析,我們發(fā)現(xiàn)出現(xiàn)NullPointerException異常的原因,是因為我們在接口實現(xiàn)類中沒有給Emp對象賦值,導(dǎo)致emp對象為null。當(dāng)我們使用null去調(diào)用對應(yīng)的方法來封裝數(shù)據(jù)時,就會出現(xiàn)空指針異常。其實空指針異常解決起來也比較簡單,我們只需要在第42行代碼前面加入如下操作:

            19

              上面的代碼,我們只是增加了給emp對象賦值的過程!這樣就解決了空指針異常。

              五. 總結(jié)與反思

              很多初學(xué)者在剛開始學(xué)習(xí)時,有時候一個變量定義錯了,或者是為了給變量賦值,都可能會引發(fā)一系列錯誤。一旦出現(xiàn)錯誤,很多初學(xué)者往往要花費幾十分鐘甚至幾個小時的時間去排查故障,甚至還有一些同學(xué)最后也搞不定這些錯誤,嚴重地挫傷了學(xué)習(xí)的積極性。

              其實初學(xué)者遇到的絕大多數(shù)問題,都是因為粗心大意造成的。我們以后在寫代碼時,不要去求快,而是要求穩(wěn),每一行代碼都要認真思考琢磨,用心去打磨自己的項目,這正應(yīng)了我們的一句老話:”磨刀不誤砍柴工“。

              今天的NullPointerException異常解決過程,給了我們初學(xué)者一個警醒,寫完業(yè)務(wù)代碼后,一定要再梳理一遍業(yè)務(wù)流程,盡量要做到以下幾點:

              編寫業(yè)務(wù)方法之后,根據(jù)業(yè)務(wù)需求自己再梳理一遍業(yè)務(wù)的實現(xiàn)過程;

              如果出現(xiàn)了問題,可以打斷點一步步往下調(diào)試,并結(jié)合簡單的輸出語句驗證輸出結(jié)果;

              只要你能夠按照小編的流程走,你會發(fā)現(xiàn)原來bug也沒有那么可怕?,F(xiàn)在你知道異常該怎么解決了嗎?

            tags:
            聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
            10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
            請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
            免費領(lǐng)取
            今日已有369人領(lǐng)取成功
            劉同學(xué) 138****2860 剛剛成功領(lǐng)取
            王同學(xué) 131****2015 剛剛成功領(lǐng)取
            張同學(xué) 133****4652 剛剛成功領(lǐng)取
            李同學(xué) 135****8607 剛剛成功領(lǐng)取
            楊同學(xué) 132****5667 剛剛成功領(lǐng)取
            岳同學(xué) 134****6652 剛剛成功領(lǐng)取
            梁同學(xué) 157****2950 剛剛成功領(lǐng)取
            劉同學(xué) 189****1015 剛剛成功領(lǐng)取
            張同學(xué) 155****4678 剛剛成功領(lǐng)取
            鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
            董同學(xué) 138****2867 剛剛成功領(lǐng)取
            周同學(xué) 136****3602 剛剛成功領(lǐng)取
            相關(guān)推薦HOT
            快速通道