Если вы просто хотите увидеть, из какой части кода выдается исключение, у вас есть простая трассировка стека.Вы получаете это, вызывая printStackTrace()
для экземпляра исключения.
Это, однако, не дает точного экземпляра объекта, который вызвал исключение.Для этого вы должны реализовать пользовательское исключение, как вы указали.Обратите внимание, что в некоторых контекстах нет такой вещи как экземпляр, как, например, исключение, выброшенное из статического метода.