PHPで例外を出力するときにわざわざgetMessage()を使う必要はない

たまに見かけるので。

こんな感じにすれば__toString()が自動的に呼ばれる。エラーメッセージとスタックトレースの両方がついたいい感じの出力になる。

<?php

function a() {
    throw new Exception("test");
}

try {
    a();
}
catch (Exception $e) {
    echo $e;
}
exception 'Exception' with message 'test' in /tmp/vw50zKH/28:4
Stack trace:
#0 /tmp/vw50zKH/28(8): a()
#1 {main}

文字列コンテキストになっているか不安な場合は、"$e"とすれば安心。

getMessage()スタックトレースがないし、getTraceAsString()は逆にメッセージがない。そもそもどちらもファイル名・行数に関する表示はない。加工してrethrowするような場合以外は、__toString()相当がおすすめ。