Виклик Mage::throwExceptionвикористовується для викидання винятків із певної Mage_Core_Exceptionрізноманітності. Зазвичай вони використовуються для подання повідомлень про помилки кінцевому користувачеві. Для прикладів цього: зробіть швидкий пошук Mage::throwExceptionу модулі Mage_Checkout, ви знайдете безліч випадків, коли повідомлення про помилку насправді переводиться перед тим, як його викинути, оскільки воно в кінцевому підсумку буде додане до об’єкта сеансу та відображене користувачеві на отримана сторінка.
Використання new Exceptionабо щось подібне new My_Custom_Exceptionзазвичай відбувається там, де ви накидаєте внутрішні помилки програми, помилки, які, швидше за все, ніколи не повинні відображатися кінцевому користувачеві. Можливо, ви їх ловите та обробляєте витончено (корисно використовувати для певного типу винятків у деяких випадках), або в інший раз, коли вони закінчуються спійманим, зареєстрованим та завершеним запитом, із загальним повідомленням про помилку, що відображається користувачеві.
Я ніколи особисто не використовував, Mage::exceptionале, мабуть, це спроба створити унікальний тип виключення для кожного модуля. Не було б шкоди для його використання, оскільки це, по суті, фабрика, яка повертає екземпляр виключення для даного модуля, хоча (на момент написання цього запису) він не реалізує жодної підтримки для таких речей, як скасування.