我調試了我的java代碼。它沒有給出任何錯誤。但是當我執行它(它也沒有給出錯誤,但是)代碼沒有成功終止。這很有趣。但是,這甚至可能嗎?調試執行冒險
Q
調試執行冒險
0
A
回答
1
當然,調試器引入的減速確實會掩蓋一些競爭條件,但這通常只適用於多線程或網絡代碼。
1
是的,可能代碼在調試時工作,在運行時不起作用。我能想到的兩個可能的原因,現在是
- 併發多線程的情況下:如果你的調試器在斷點處停止,多個線程之間的時間可以改變可以影響行爲
- 調試時,可以觸發代碼多次的某些部分,例如像通過toString方法或通過操作的方式檢查或具有一些監視表達式配置
1
是(更多時,它已經無需調試執行比),代碼可以是語法正確(並且因此可能沒有任何錯誤地運行),但是可能在語義上不合格等。
假設如下:
public int add(int operand1, int operand2)
{
return operant1 - operand2;
}
這沒有錯誤運行,但仍然是不正確的,由於邏輯/執行錯誤。
因此,有可能通過順利運行的代碼獲得錯誤的結果。
相關問題
- 1. ExpectJ冒險
- 2. 同步冒險
- 3. IOException冒險
- 4. ClassCastException異常冒險
- 5. 使用STREAM冒險
- 6. 冒險類基於文本的冒險遊戲
- 7. 將「冒險」歸類爲「行動」?
- 8. Python文本冒險循環
- 9. 異常處理冒險
- 10. 批處理腳本冒險
- 11. 冒險作品解釋
- 12. AsyncTask執行調試
- 13. 冒泡排序執行
- 14. 批處理。試圖使文本冒險,如果其他工作
- 15. AS3 - 非常簡單的文字冒險
- 16. scala基於文本的冒險遊戲
- 17. 非常基本的Python文本冒險
- 18. 字符串替換在Java冒險
- 19. Python文本冒險遊戲不工作
- 20. Python問題中的文本冒險
- 21. 冒險練習遇到困難
- 22. Google AngularJS框架 - 值得冒險嗎?
- 23. 基本C#文本冒險破解
- 24. 異常處理的冒險III - 更新
- 25. 創建文本冒險時使用OOP
- 26. 字符串解析器文本冒險
- 27. 打開python文本冒險計數器
- 28. 基於文本的冒險遊戲
- 29. 在文本冒險中實現退出
- 30. F#代碼爲冒險工程樣品
這通常是由於'toString'方法中的副作用。 – 2011-05-06 11:45:54
我的代碼中沒有使用任何tostring()方法 – hari 2011-05-06 11:47:11
如果代碼在語法上是正確的,則這是可能的。從JVM的角度來看,一切都很好,儘管你的邏輯可能不正確。它顯然是正確執行代碼,但由於邏輯有缺陷,它沒有達到你的預期......如果你能顯示你的代碼會好得多。 – gruntled 2011-05-06 11:48:24