CWE-369:Divide By Zero除數有可能為零缺陷是如何產生的?
一、除數可能為零缺陷
01 什麼是除數有可能為零缺陷?
運算操作時,除法或求餘數操作容易受到除數有可能為零的影響。因此,必須在操作之前檢查除法運算或求餘數運算中的除數不為零。
根據除法的意義,除法是已知兩個因數的積與其中一個因數,求另一個因數的運算。利用除法與乘法的互逆關係可知,如果除數為零,則:當被除數不為零,由於“任何數乘零都等於零,而不可能等於不是零的數”,此時除法算式的商不存在——即任何數的零倍都不可能為非零數;當被除數為零,即除法算式零÷零,由於“任何數乘零都等於零”,於是商可以是任何數——即任何數的零倍都等於零。為了避免以上兩種情況,數學中規定“零不能做除數”。
02 為什麼會出現除數可能為零?
在運算過程中除法或求餘數操作時,當除數沒有經過測試就進行運算,就有可能為零。
二、除數為零造成影響及解決方法
03 除數有可能為零缺陷會造成哪些後果?
如果不驗證除數的輸入值不為零,那麼這將造成一個試圖除以零的異常。如果Java的異常處理沒有處理此錯誤,則可能發生意外的結果,甚至導致崩潰。
04 除數有可能為零缺陷的防範和修補方法有哪些?
出現以上情況,在不確定分母是否為0的情況下,需要先對分母進行判斷,以保證不存在除數為零的可能性。
三、除數有可能為零樣例展示:
05 除數有可能為零缺陷樣例 (Date類中的大部分方法都已經被Calendar類中的方法所取代):
用Wukong 悟空靜態程式碼安全檢測工具檢測上述程式程式碼,則可以發現程式碼中存在著“除數有可能為零” 導致的程式碼缺陷,如下圖:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2788258/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 數字化賦能精益生產:為工業生產開啟無限可能的新篇章!
- Codeforces Round 976 (Div. 2) and Divide By Zero 9.0(A,B,C)IDE
- Llama3可能是產生幻覺最多的小模型模型
- oracle 使用nullif解決除數為零的問題OracleNull
- 不知道如何做好精益生產管理?可能是你的企業還沒有進行工時分析
- Spuernova 是如何提升 Flutter 的生產力Flutter
- 我是如何與“DOT”產生“感情”的?
- 【CodeForces訓練記錄】Codeforces Round 976 (Div. 2) and Divide By Zero 9.0IDE
- ERP系統是如何提高生產效率的?
- 什麼是零知識證明 (Zero Knowledge Proof)?
- TPM是如何發現裝置缺陷的?
- 從科學管理到豐田生產模式,精益是如何產生的?模式
- 如何產生指定範圍的隨機數隨機
- Linux 萬用字元可能產生的問題Linux字元
- 【筆記】如何產生隨機數筆記隨機
- 數字化是未來服裝的生產方式
- Vue生產環境除錯的方法Vue除錯
- 摩根士丹利:2022年特斯拉生產200萬輛汽車是可能的
- 精益生產是如何打破“二八法則”魔咒的?
- Kafka入門(3):Sarama生產者是如何工作的Kafka
- 你認為es5的設計缺陷有哪些?
- 對手機丟失後可能產生的危害的思考
- ASM 展示量級少?可能是因為你的產品權重太低!ASM
- 滑鼠控制軟體有可能和虛擬機器軟體產生衝突虛擬機
- 如何讓智慧客服成為企業的生產力工具?
- 我是如何從測試轉為產品的
- go-zero 是如何追蹤你的請求鏈路的Go
- go-zero 是如何追蹤你的請求鏈路?Go
- 有一組整數資料,全部除以一個整數a,使得餘數是同n種數字,如何計算出這個整數a的全部可能。
- 為什麼單件流是精益生產的首要原則?
- 精益生產和AI技術是如何相輔相成的?AI
- 英靈總數240騎,音源數量約有40000個! Foley是如何為《FGO》做音效的?Go
- Rust中如何產生隨機數或密碼?Rust隨機密碼
- 《Florence》是如何誕生的?
- OB有問必答 | OceanBase的記憶體管理是怎麼做的?在實際的生產環境中是如何應用的?記憶體
- 如何判斷企業有沒有精益生產執行力?
- GPT Zero 是什麼?GPT
- 優思學院|什麼是精益生產?企業如何實現精益生產?