2010-01-07 43 views
5

Tôi khá mới để sử dụng đối tượng/lớp trong PHP và tôi tò mò về NGOẠI LỆ, TRYCATCHNgoại lệ trong PHP là gì và những gì là thử và bắt?

Trong ví dụ dưới đây tôi có tất cả 3 thể hiện trong sử dụng. Rõ ràng là một ngoại lệ là một số loại cách gây ra lỗi nhưng tôi không hiểu tại sao? Trong đoạn code dưới đây tôi có thể dễ dàng hiển thị một số loại lỗi hoặc một cái gì đó mà không có phần ngoại lệ ở đó?

Dưới đây là ví dụ sử dụng thử và nắm bắt. Có vẻ như tôi cũng giống như sử dụng if/else. Tôi có thể sai, đây chỉ là cách tôi nhìn thấy mà không biết gì, tôi nhận ra bạn có thể viết mã bất cứ thứ gì trong PHP mà không sử dụng cái này vì vậy lý do là gì, có lợi ích gì khi sử dụng công cụ này theo cách truyền thống không?

<?PHP 
// sample of using an exception 
if($something === $something_else){ 
    //do stuff 
}else if($something === $something_else_again){ 
    //do stuff 
}else{ 
    throw new Exception('Something went wrong!'); 
} 

thử và nắm bắt

//and try and catch 
try{ 
    $thumb = PhpThumbFactory::create('/path/to/image.jpg'); 
} 
catch (Exception $e){ 
    // handle error here however you'd like 
} 
?> 

Trả lời

5

Để làm cho mọi việc ngắn, một ngoại lệ là một "điều kiện đặc biệt mà thay đổi dòng chảy bình thường của thực hiện chương trình" (trích dẫn wikipedia)


Bạn có thể quan tâm bởi (ít nhất là) những cặp vợ chồng điều:

Họ sẽ cho bạn một số yếu tố thú vị - đặc biệt là một giây, vì "một ngoại lệ trong php là gì"


Một trong những ưu (đó là một phần ý tưởng cơ bản) là:

  • bạn có mã "bình thường" trong try chặn
  • và phần lớn nhất của "đối phó với vấn đề" đang trong catch khối
  • có nghĩa là ít "đối phó với vấn đề" mã kiểm tra vào giữa "bình thường" mã
  • và cũng cho phép bạn tập hợp lại "xử lý sự cố" một phần của mã
+0

Cảm ơn các liên kết, sau khi đọc phần thứ 2, tôi nhận ra đây là điều tôi không thể học qua đêm, có vẻ hơi phức tạp khi sử dụng và cách sử dụng chính xác nhưng đây là một khởi đầu tốt và tôi hiểu họ đang làm gì và cho phần nào, cảm ơn bạn – JasonDavis

+0

Vâng, nó không phải là thứ bạn sẽ học (và sử dụng "khôn ngoan") chỉ trong một ngày ^^ Nhưng không cần phải nạc nhanh như thế, dù sao đi nữa, nó sẽ từng bước, khi bạn đang sử dụng những, cái đó :-) –

2

Exceptions là một cách để tách mã lỗi xử lý từ mã "thường xuyên". Về cơ bản, chiến lược này cho phép bạn viết một khối mã và không lo lắng về những gì có thể xảy ra (khối try). Sau đó, sau đó, bạn bắt các ngoại lệ có thể đã bị ném trong quá trình thực thi của khối và xử lý chúng một cách thích hợp. Đó là một cách sạch hơn để xử lý lỗi.

+1

Chỉ cần nhớ. Lỗi đầu tiên mà nó ném dừng việc thực hiện. Nhưng vâng .... –

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