ฉันมีฟังก์ชั่นหลายอย่างที่ส่งคืนบางอย่างหรือส่งข้อผิดพลาด ในฟังก์ชันหลักฉันเรียกสิ่งเหล่านี้และต้องการส่งคืนค่าที่ส่งคืนโดยแต่ละฟังก์ชันหรือไปที่ฟังก์ชันที่สองหากฟังก์ชันแรกเกิดข้อผิดพลาด
โดยพื้นฐานแล้วสิ่งที่ฉันมีอยู่คือ:
function testAll() {
try { return func1(); } catch(e) {}
try { return func2(); } catch(e) {} // If func1 throws error, try func2
try { return func3(); } catch(e) {} // If func2 throws error, try func3
}
แต่จริงๆแล้วฉันต้องการtry
ส่งคืนเท่านั้น(เช่นถ้ามันไม่เกิดข้อผิดพลาด) ฉันไม่ต้องการcatch
บล็อก อย่างไรก็ตามรหัสเช่นtry {}
ล้มเหลวเนื่องจากไม่มีcatch {}
บล็อก(ไม่ได้ใช้)
ฉันใส่ตัวอย่างใน jsFiddle
ดังนั้นมีวิธีใดบ้างที่จะcatch
ลบบล็อกเหล่านั้นออกไปในขณะที่ได้ผลเช่นเดียวกัน?
null
และคุณทำสิ่งที่ชอบreturn func1() || func2() || func3();