ゆう's Blog
echo "エラーが発生しました:" . $e->getMessage();とexit($e);の違い

・echo "エラーが発生しました:" . $e->getMessage();:これはエラーメッセージを表示するだけで、スクリプトの実行はその後も続きます。$e->getMessage()は、発生した例外のエラーメッセージを返します。このコードは、エラーメッセージを表示したい場合に使用します。

・exit($e);:これはスクリプトの実行をすぐに停止します。exit関数は、オプションでステータスメッセージを出力できます。この場合、$e(例外オブジェクト)がそのまま出力されます。ただし、$eはオブジェクトなので、そのまま出力すると役に立たない情報(オブジェクトの型とID)しか得られません。そのため、通常はexit($e->getMessage());のように、エラーメッセージを出力するようにします。

したがって、エラーが発生したときにスクリプトの実行を停止したい場合はexitを使用し、エラーメッセージを表示したいだけでスクリプトの実行を続けたい場合はechoを使用します。

一意性制約違反のエラー

try {

} catch (PDOException $e) {
// エラーが発生した場合、トランザクションをロールバックします
$pdo->rollBack();

if ($e->errorInfo[1] == 1062) {
// 一意性制約違反のエラーコードは1062です
echo "IDがすでに存在します。";
} else {
// その他のエラー
echo "エラーが発生しました:" . $e->getMessage();
}
}