Непонятно, при чем здесь все это Авраам родил Исаака, Исаак родил Иакова, Иаков родил Иуду и братьев его.
Дело не в том, кто кому наследует, а в том, кто кого вызывает.
И в том, что ты пишешь ерунду. РНР как раз показыавет ровно то место, где было брошено искючение. И поэтому тебе надо не "номер строку, имя файла где произошло ошибка" - они у тебя и так уже есть, - а нужен стек вызовов. Потому что определить, какая строка послужила первопричиной ошибки, может только программист.
Если не лезть кривыми руками в механизм исключений, то он сам выдает стек вызовов. Это наилучший вариант. Но если так хочется все испортить - то получать вручную, через getTrace().
В общем, скорее всего ты что-то делаешь неправильно. Покажи код, и тебе напишут, как сделать правильно.