Je veux implémenter une bonne gestion des erreurs dans mon application, j'ai forcé ce fichier pour attraper l'erreur.
App\Services\PayUService
try {
$this->buildXMLHeader; // Should be $this->buildXMLHeader();
} catch (Exception $e) {
return $e;
}
App\Controller\ProductController
function secTransaction(){
if ($e) {
return view('products.error', compact('e'));
}
}
Et c'est ce que je reçois.
Je ne sais pas pourquoi Laravel ne me redirige pas vers la vue. L'erreur est-elle forcée, n'est-ce pas?
Vous êtes à l'intérieur d'un namespace
, vous devez donc utiliser \Exception
Pour spécifier l'espace de nom global:
try {
$this->buildXMLHeader();
} catch (\Exception $e) {
return $e->getMessage();
}
Dans votre code, vous avez utilisé catch (Exception $e)
donc Exception
est recherché dans/en tant que:
App\Services\PayUService\Exception
Comme il n'y a pas de classe Exception
à l'intérieur de App\Services\PayUService
, Elle n'est donc pas déclenchée. Vous pouvez également utiliser une instruction use
en haut de votre classe, telle que use Exception;
, Puis vous pouvez utiliser catch (Exception $e)
.