Tôi có cần phải `quay lại` sau khi` ném` vào JavaScript không?


96

Tôi đang ném Errormột phương pháp của tôi mà tôi muốn thoát ra sớm, như dưới đây:

// No route found
if(null === nextRoute) {
    throw new Error('BAD_ROUTE');
}

Tôi có cần đặt một return;tuyên bố sau của tôi throwkhông? Nó hoạt động cho tôi, bây giờ. Nếu nó thừa, tôi không muốn đưa nó vào, nhưng tôi không thể chắc chắn những trình duyệt khác nhau có thể làm gì.

Câu trả lời:


160

Bạn không cần phải đặt một returntuyên bố sau throw, returnđường dây sẽ không bao giờ đạt được vì ném một ngoại lệ ngay lập tức trao quyền kiểm soát lại cho người gọi.


1
"ném một ngoại lệ ngay lập tức trao quyền kiểm soát lại cho người gọi" ... Trừ khi có CATCH để xử lý lỗi đã ném trong bất kỳ đường dẫn nào của ngăn xếp cuộc gọi.
Mahesh

12
@Mahesh Tôi không chắc ý của bạn khi nói "Trừ khi" - bất kỳ CATCH nào trong ngăn xếp bên dưới nơi throwxảy ra đều là một phần của "người gọi"
Rob M.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.