Cuộc gọi Mage::throwException
được sử dụng để ném ngoại lệ của Mage_Core_Exception
giống cụ thể . Chúng thường được sử dụng để trình bày các thông báo lỗi cho người dùng cuối. Để biết ví dụ về điều này, hãy tìm kiếm nhanh Mage::throwException
trong mô-đun Mage_Checkout, bạn sẽ tìm thấy nhiều trường hợp thông báo lỗi thực sự được dịch trước khi bị ném, vì cuối cùng nó sẽ được thêm vào đối tượng phiên và hiển thị cho người dùng trên trang kết quả.
Sử dụng new Exception
hoặc một cái gì đó giống như new My_Custom_Exception
thông thường sẽ là nơi bạn đang ném lỗi nội bộ vào ứng dụng, những lỗi rất có thể sẽ không bao giờ được hiển thị cho người dùng cuối. Có thể bạn nắm bắt được chúng và xử lý chúng một cách duyên dáng (sử dụng tốt cho một loại ngoại lệ tùy chỉnh trong một số trường hợp) hoặc những lần khác chúng kết thúc bị bắt, ghi lại và chấm dứt yêu cầu với thông báo lỗi chung hơn được hiển thị cho người dùng.
Tôi chưa bao giờ sử dụng cá nhân Mage::exception
nhưng dường như đó là một nỗ lực để tạo mẫu có một loại ngoại lệ duy nhất cho mỗi mô-đun. Sẽ không có hại gì khi sử dụng nó, vì về cơ bản, nó là một nhà máy trả về một trường hợp ngoại lệ cho mô-đun đã cho, mặc dù (tại thời điểm viết bài này), nó không thực hiện bất kỳ hỗ trợ nào cho những thứ như ghi đè.