CWE-369:Divide By Zero除數有可能為零缺陷是如何產生的?
一、除數可能為零缺陷
01 什麼是除數有可能為零缺陷?
運算操作時,除法或求餘數操作容易受到除數有可能為零的影響。因此,必須在操作之前檢查除法運算或求餘數運算中的除數不為零。
根據除法的意義,除法是已知兩個因數的積與其中一個因數,求另一個因數的運算。利用除法與乘法的互逆關係可知,如果除數為零,則:當被除數不為零,由於“任何數乘零都等於零,而不可能等於不是零的數”,此時除法算式的商不存在——即任何數的零倍都不可能為非零數;當被除數為零,即除法算式零÷零,由於“任何數乘零都等於零”,於是商可以是任何數——即任何數的零倍都等於零。為了避免以上兩種情況,數學中規定“零不能做除數”。
02 為什麼會出現除數可能為零?
在運算過程中除法或求餘數操作時,當除數沒有經過測試就進行運算,就有可能為零。
二、除數為零造成影響及解決方法
03 除數有可能為零缺陷會造成哪些後果?
如果不驗證除數的輸入值不為零,那麼這將造成一個試圖除以零的異常。如果Java的異常處理沒有處理此錯誤,則可能發生意外的結果,甚至導致崩潰。
04 除數有可能為零缺陷的防範和修補方法有哪些?
出現以上情況,在不確定分母是否為0的情況下,需要先對分母進行判斷,以保證不存在除數為零的可能性。
三、除數有可能為零樣例展示:
05 除數有可能為零缺陷樣例 (Date類中的大部分方法都已經被Calendar類中的方法所取代):
用Wukong 悟空靜態程式碼安全檢測工具檢測上述程式程式碼,則可以發現程式碼中存在著“除數有可能為零” 導致的程式碼缺陷,如下圖:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2788258/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Llama3可能是產生幻覺最多的小模型模型
- Spuernova 是如何提升 Flutter 的生產力Flutter
- NAND Flash是如何生產出來的?NaN
- 不知道如何做好精益生產管理?可能是你的企業還沒有進行工時分析
- 從科學管理到豐田生產模式,精益是如何產生的?模式
- 唯一索引操作可能產生的鎖索引
- 遠端呼叫procedure可能會有一些缺陷!
- 如何產生指定範圍的隨機數隨機
- 【筆記】如何產生隨機數筆記隨機
- oracle 使用nullif解決除數為零的問題OracleNull
- 交換機可能產生的問題分析(轉)
- Codeforces Round 976 (Div. 2) and Divide By Zero 9.0(A,B,C)IDE
- Kafka入門(3):Sarama生產者是如何工作的Kafka
- MyHeritage是如何實現釋出到生產環境的
- Linux 萬用字元可能產生的問題Linux字元
- 什麼是零知識證明 (Zero Knowledge Proof)?
- ORA-07445: core dump [kpopfr()+673] [SIGFPE] [Integer divide by zero]IDE
- Vue生產環境除錯的方法Vue除錯
- 生產上刪除歸檔的命令
- 滑鼠控制軟體有可能和虛擬機器軟體產生衝突虛擬機
- 對手機丟失後可能產生的危害的思考
- 如何讓智慧客服成為企業的生產力工具?
- MATLAB中如何產生指定範圍的隨機數Matlab隨機
- ASM 展示量級少?可能是因為你的產品權重太低!ASM
- 程式設計師如何做到程式碼零缺陷程式設計師
- Rust中如何產生隨機數或密碼?Rust隨機密碼
- 為什麼單件流是精益生產的首要原則?
- 精益生產和AI技術是如何相輔相成的?AI
- 如何判斷企業有沒有精益生產執行力?
- 優思學院|什麼是精益生產?企業如何實現精益生產?
- 資料庫自增主鍵可能產生的問題資料庫
- update/select也可能產生buffer busy waits。AI
- R產生隨機數隨機
- 為什麼說5S是精益生產落地的基礎?
- 英靈總數240騎,音源數量約有40000個! Foley是如何為《FGO》做音效的?Go
- 軟體是誘導式生產還是服從彌補式生產? (轉)
- 有一組整數資料,全部除以一個整數a,使得餘數是同n種數字,如何計算出這個整數a的全部可能。
- 《作為生產者的作者》筆記筆記