1. 程式人生 > >經典bug

經典bug

cat 錯誤 實現 周期 catch tro cred cep 子線程

1. 變量使用錯誤,一般為筆誤

  本意是剔除自身的奇案8個字符,結果因為取長度是使用錯了變量,導致異常

技術分享圖片

2.異常捕獲類異常

  已建立業務類異常,將函數抽出來,加了子線程處理任務,會把原來的業務類異常統一變成了ExecutionException,所以在上遊代碼裏catch不到這個,原來catch的還是creditException,現在改變是把ExecutionException異常catch住,然後返的ExecutionException提取後轉成creditException上返

3.redis作計數器使用,實現限制每分鐘次數的作用,由於取關鍵字值和增1期間reids中的數據過期失效,導致增1時沒加有效期,永久有效,計數器新時間周期不再清0

  1語句是取該分鐘內計數器的數值,2語句是對改數據進行加1。產生問題的前提是:redis的機制,increment函數如果沒有對應key就默認初始值為0,再加1,但是這個過程都是默認進行的,沒有設置有效期,導致計數值永久有效

技術分享圖片

經典bug