国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

sonar能否動態(tài)捕獲JVM引起的空指針異常

請問sonar能否在運(yùn)行時發(fā)現(xiàn)java虛擬機(jī)引起的空指針異常??如果是,請告訴我哪個聲納規(guī)則為我們做的。我對此感到非常困惑,因為聲納 findbugs 配置文件中存在一些規(guī)則,這些規(guī)則說聲納捕獲空指針異常。findbugs 規(guī)則之一Avoid Throwing Null Pointer Exception說我們應(yīng)該避免拋出空指針異常。


ps.請澄清一下聲納可以捕獲空指針異常還是由 JVM 拋出?或者它只能捕獲自定義的空指針異常(由開發(fā)人員生成)以及這些聲納規(guī)則的含義(空指針異常、空指針取消引用等)。使用聲納的規(guī)則是什么?



NullPointerException是的,Sonar 可以通過使用引擎蓋下的 FindBugs 工具來檢測JVM 拋出的 s (NPE)。但是,它不能運(yùn)行時動態(tài)地這樣做,因為 FindBugs 是一個靜態(tài)分析工具。

FindBugs 檢測器中,選擇NP_其鍵中帶有前綴的檢測器,例如NP_ALWAYS_NULL大約有 30 個這樣的檢測器處理空指針分析。

請注意,F(xiàn)indBugs 通過代碼的靜態(tài)分析來工作。換句話說,它不會動態(tài)地“捕獲”NPE 或以某種方式執(zhí)行代碼的模擬運(yùn)行并“捕獲”NPE。這很難做到,因為每個可能的代碼路徑都需要測試用例。相反,F(xiàn)indBugs 僅使用其檢測器分析類文件。
因此,您不會找到所有可能發(fā)生 NPE 的情況,但由于檢測器的絕對數(shù)量,您將捕獲最多。此外,該領(lǐng)域的一些 FindBugs 檢測器非常復(fù)雜,盡管總有改進(jìn)的余地。

另請注意,為了幫助檢測器完成其工作,您可能必須使用空指針分析注釋來注釋方法參數(shù)和返回值(也在此處的 JSR305 中)。如果你在 SO 中搜索這些注解,你會發(fā)現(xiàn)很多關(guān)于它們在各種環(huán)境中正確使用的有用建議。

文章來源地址http://www.zghlxwxcb.cn/article/263.html

到此這篇關(guān)于sonar能否動態(tài)捕獲JVM引起的空指針異常的文章就介紹到這了,更多相關(guān)內(nèi)容可以在右上角搜索或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

原文地址:http://www.zghlxwxcb.cn/article/263.html

如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請聯(lián)系站長進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C語言和C++中的空指針區(qū)別

    C語言中,空指針是 NULL ,是一個宏 在C++中 NULL 似乎也可以用,但是C++中的 NULL 其實是有問題的。C++大佬在設(shè)計的時候可能沒有考慮全面 在C++98中,字面常量0既可以是一個整形數(shù)字,也可以是無類型的指針(void*)常量 但是編譯器默認(rèn)情況下 將其看成是一個整形常量,如果要將

    2024年01月25日
    瀏覽(29)
  • 【C++那些事兒】內(nèi)聯(lián)函數(shù),auto,以及C++中的空指針nullptr

    【C++那些事兒】內(nèi)聯(lián)函數(shù),auto,以及C++中的空指針nullptr

    君兮_的個人主頁 即使走的再遠(yuǎn),也勿忘啟程時的初心 C/C++ 游戲開發(fā) Hello,米娜桑們,這里是君兮_,我之前看過一套書叫做《明朝那些事兒》,把本來枯燥的歷史講的生動有趣。而C++作為一門接近底層的語言,無疑是抽象且難度頗深的。我希望能努力把抽象繁多的知識講的生

    2024年02月08日
    瀏覽(27)
  • 智能指針+拷貝構(gòu)造+vector容器+多態(tài)引起的bug

    智能指針+拷貝構(gòu)造+vector容器+多態(tài)引起的bug

    今天在調(diào)試一段代碼的時候,VC編譯提示: error C2280: “T485CommCtrlPara::T485CommCtrlPara(const T485CommCtrlPara )”: 嘗試引用已刪除的函數(shù) 函數(shù)執(zhí)行部分如下: ?看意思是這個pComm485Pro已經(jīng)消亡了,后續(xù)push_back到vec485DevCommPara有問題,但智能指針已經(jīng)move了,這樣new出來資源的所有權(quán)應(yīng)該

    2024年02月11日
    瀏覽(18)
  • 【C++】異常處理 ① ( 異常概念引入 | 拋出異常語法 | 捕獲異常語法 | 異常捕獲流程 | 異常處理代碼示例 )

    【C++】異常處理 ① ( 異常概念引入 | 拋出異常語法 | 捕獲異常語法 | 異常捕獲流程 | 異常處理代碼示例 )

    異常是一種 特殊的程序流控制機(jī)制 , 用于處理程序中可能出現(xiàn)的錯誤或異常情況 ; 當(dāng)程序執(zhí)行錯誤時 , 由 throw 拋出異常 , 并即跳轉(zhuǎn)到相應(yīng)的異常處理程序中 ; 如果沒有適當(dāng)?shù)漠惓L幚沓绦蛱幚碓摦惓?, 程序會崩潰終止 ; 異常與函數(shù)對比 : 函數(shù) 是一種 以 棧結(jié)構(gòu) 展開的

    2024年02月04日
    瀏覽(18)
  • 【Java基礎(chǔ)教程】(三十一)常用類庫篇 · 第一講:Optional類——解鎖Java的Optional操作,消滅那些隱匿的空指針,還程序世界一個安穩(wěn)!~

    【Java基礎(chǔ)教程】(三十一)常用類庫篇 · 第一講:Optional類——解鎖Java的Optional操作,消滅那些隱匿的空指針,還程序世界一個安穩(wěn)!~

    Optional 類是Java 8引入的新特性,旨在解決空值( null )的處理問題 。它的設(shè)計目的是為了提供一種更好的方式來處理可能為空的值,避免使用 null 導(dǎo)致空指針異常。 Optional 是一個容器對象,可以持有某個類型的非空值或者空值。它是一個包裝類,用于替代可能為空的引用變

    2024年02月15日
    瀏覽(82)
  • 爬蟲異常處理:異常捕獲與容錯機(jī)制設(shè)計

    爬蟲異常處理:異常捕獲與容錯機(jī)制設(shè)計

    作為一名專業(yè)的爬蟲程序員,每天使用爬蟲IP面對各種異常情況是我們每天都會遇到的事情。 在爬取數(shù)據(jù)的過程中,我們經(jīng)常會遇到網(wǎng)絡(luò)錯誤、頁面結(jié)構(gòu)變化、被反爬蟲機(jī)制攔截等問題。在這篇文章中,我將和大家分享一些關(guān)于如何處理爬蟲異常情況的經(jīng)驗和技巧。通過異常

    2024年02月11日
    瀏覽(16)
  • Java 異常處理以及如何捕獲和處理多個異常

    Java 異常處理以及如何捕獲和處理多個異常

    在Java中,我們使用異常處理程序組件try,catch和finally塊來處理異常。 為了捕獲和處理異常,我們將try...catch...finally代碼塊放置在可能產(chǎn)生異常的代碼周圍。finally塊是可選的。 try...catch...finally的語法為: 可能會生成異常的代碼放在try塊中。 每個try塊后面應(yīng)緊跟著catch 或 fi

    2024年02月14日
    瀏覽(44)
  • java異常處理機(jī)制(二)之異常處理與捕獲

    java異常處理機(jī)制(二)之異常處理與捕獲

    1 Error(錯誤): 是指程序無法處理的錯誤,表示運(yùn)行應(yīng)用程序時比較嚴(yán)重的問題。大多數(shù)錯誤與代碼編寫者執(zhí)行的操作無關(guān),而表示代碼運(yùn)行時JVM(Java 虛擬機(jī))出現(xiàn)的問題。 2 異常(Exception): 是指在程序執(zhí)行時由于程序處理邏輯上的錯誤而導(dǎo)致程序中斷的一種指令流。通俗的

    2024年02月05日
    瀏覽(20)
  • Python 異常捕獲與處理

    當(dāng)我們寫程序難免遇到報錯,專業(yè)的稱呼叫做異常,行業(yè)俗語叫做bug,由于異常情況出現(xiàn)會導(dǎo)致代碼停止運(yùn)行,所以在編寫過程中要盡可能避免。 語法錯誤 這一類錯誤很好理解,相當(dāng)于你不會寫,比如用if或for的時候不知道他們怎么寫,這種情況比較夸張了,好好學(xué)過的人都

    2023年04月22日
    瀏覽(24)
  • c++捕獲異常

    catch ?塊跟在? try ?塊后面,用于捕獲異常。您可以指定想要捕捉的異常類型,這是由 catch 后的括號內(nèi)的異常聲明決定的。 try { // 保護(hù)代碼 }catch( ExceptionName e ) { // 處理 ExceptionName 異常的代碼 } 上面的代碼會捕獲一個類型為? ExceptionName ?的異常。如果您想讓 catch 塊能

    2024年02月09日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包