2012-06-26 48 views
17

Tôi đang cố gắng tìm hiểu xem mã nằm sau throw new Exception trong PHP vẫn được thực thi hay không - tôi đã thử nó và dường như nó không xuất ra bất cứ điều gì nhưng muốn biết chắc chắn.Có 'ném ngoại lệ mới' yêu cầu thoát()?

+0

Tôi tự hỏi điểm của ngoại lệ là gì nếu nó không gây ra sự bẻ khóa (cho đến khi các điều kiện thích hợp, ví dụ như 'bắt', ngăn chặn nó từ ngăn nói) ... –

+8

_Khi ngoại lệ là ném, mã theo tuyên bố sẽ không được thực hiện, và PHP sẽ cố gắng tìm khối catch khớp đầu tiên. Nếu một ngoại lệ không bị bắt, Lỗi PHP Fatal sẽ được phát hành với một thông báo "Uncaught Exception ...", trừ khi một trình xử lý đã được định nghĩa với set_exception_handler() ._ [Từ tài liệu.] (Http: // php. net/manual/en/language.exceptions.php) –

Trả lời

32

Không, mã sau khi ném ngoại lệ sẽ không được thực thi.

Trong ví dụ mã này tôi đánh dấu các dòng đó sẽ được thực hiện (dòng code) với số lượng:

try { 
    throw new Exception("caught for demonstration");     // 1 
    // code below inside the try{} block is never executed 
    echo "you won't read this." . PHP_EOL; 
} catch (Exception $e) { 
    // you may want to react on the Exception here 
    echo "exception caught!" . PHP_EOL;         // 2 
}  
// execution flow continues here, because Exception above has been caught 
echo "yay, lets continue!" . PHP_EOL;         // 3 
throw new Exception("uncaught for demonstration");      // 4, end 

// execution flow never reaches this point because of the Exception thrown above 
// results in "Fatal Error: uncaught Exception ..." 
echo "you won't see me, too" . PHP_EOL; 

Xem PHP manual on exceptions:

Khi một ngoại lệ được ném ra, đoạn mã sau tuyên bố sẽ không được thực hiện và PHP sẽ cố gắng tìm khối catch khớp đầu tiên. Nếu một ngoại lệ không bị bắt, một Lỗi nghiêm trọng về PHP sẽ được phát hành với một thông báo "Ngoại lệ không bắt buộc ...", trừ khi một trình xử lý đã được xác định với set_exception_handler().

3

Không, mã sau câu lệnh throw không được thực hiện. Giống như return.

Các vấn đề liên quan