ควรใช้บล็อก catch สำหรับการเขียนลอจิกนั่นคือ handle flow control etc? หรือเพียงแค่โยนข้อยกเว้น? มันส่งผลต่อประสิทธิภาพหรือความสามารถในการบำรุงรักษาโค้ดหรือไม่?
อะไรคือผลข้างเคียง (ถ้ามี) ของการเขียนลอจิกใน catch block?
แก้ไข:
ฉันเคยเห็นคลาส Java SDK ซึ่งพวกเขาได้เขียนตรรกะภายใน catch block ตัวอย่างเช่น (ตัวอย่างข้อมูลมาจากjava.lang.Integer
ชั้นเรียน):
try {
result = Integer.valueOf(nm.substring(index), radix);
result = negative ? new Integer(-result.intValue()) : result;
} catch (NumberFormatException e) {
String constant = negative ? new String("-" + nm.substring(index))
: nm.substring(index);
result = Integer.valueOf(constant, radix);
}
แก้ไข 2 :
ฉันกำลังดูบทช่วยสอนที่พวกเขานับว่าเป็นข้อได้เปรียบในการเขียนตรรกะของกรณีพิเศษภายในข้อยกเว้น:
ข้อยกเว้นช่วยให้คุณสามารถเขียนโฟลว์หลักของโค้ดและจัดการกับกรณีพิเศษอื่น ๆ
แนวทางเฉพาะเมื่อเขียนตรรกะใน catch catch และเมื่อใด