23
loading...
This website collects cookies to deliver better user experience
throw
quando o trecho de código estiver envolvido na palavra reservada try
, e capturada através da palavra reservada catch
. Cada bloco try
precisa ter ao menos um catch
ou finally
correspondente.\Exception
, consequentemente, o objeto lançado precisa ser uma instância da classe \Exception
ou uma subclasse de \Exception
. Tentar lançar um objeto sem essa ascendência resultará em um erro fatal. Para saber mais, consulte a documentação oficial do PHP sobre as exceptions.\{Vendor}\{Module}\Exception\{Name}Exception.php
. Cada arquivo de Exception deve estender a classe \Magento\Framework\Exception\LocalizedException
.<?php
namespace {Vendor}\{Module}\Exception;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\Phrase;
class {Name}Exception extends LocalizedException
{
public function __construct(
Phrase $phrase = null,
\Exception $cause = null,
array $params = [],
$code = 0
) {
parent::__construct($phrase, $cause, $params, $code);
}
}
\Magento\Framework\Exception\LocalizedException
estende da classe \Exception
do PHP e é estendida por um conjunto de classes que o próprio Magento já disponibiliza para o uso, estas classes de excessão estão disponíveis no caminho \Magento\Framework\Exception
.catch
que envolverá o código (podendo ser de outra função ou método. Para disparar uma excessão personalizada no Magento, é igual a lançar qualquer outra excessão.throw new \{Vendor}\{Module}\Exception\{Name}Exception(
__('{Message exception}')
);
Valores entre chaves ({test}
) devem ser alterados na implementação do código.
php bin/magento cache:clean
php bin/magento flush
- app/
- code/
- {Vendor}/
- {Module}/
- etc/
- module.xml
- Exception/
- {Name}Exception.php
- registration.php
- composer.json