A chamada Mage::throwException
é usada para lançar exceções da Mage_Core_Exception
variedade específica . Eles geralmente são usados para apresentar mensagens de erro ao usuário final. Para obter exemplos disso, faça uma pesquisa rápida Mage::throwException
no módulo Mage_Checkout; você encontrará muitas instâncias em que a mensagem de erro está sendo traduzida antes de ser lançada, pois será adicionada ao objeto da sessão e exibida ao usuário em a página resultante.
Normalmente, usar new Exception
ou algo parecido new My_Custom_Exception
é o local onde você está lançando erros internos ao aplicativo, erros que provavelmente nunca devem ser exibidos ao usuário final. Talvez você os pegue e os manipule normalmente (bom uso para um tipo de exceção personalizado em alguns casos) ou outras vezes eles acabam sendo capturados, registrados e encerram a solicitação com uma mensagem de erro mais genérica sendo exibida ao usuário.
Eu nunca usei pessoalmente, Mage::exception
mas parece ser uma tentativa de padronizar um tipo de exceção exclusivo para cada módulo. Não haveria mal em usá-lo, pois é essencialmente uma fábrica que retorna uma instância de exceção para o módulo fornecido, embora (no momento da redação deste artigo) não implemente nenhum suporte para itens como substituições.