Можно ли создать свой CustomException и передавать в него дополнительные переменные (int long etc) для обработки в catch блоке?
Такое практикуется или лучше этого избегать?
Если Вы будете использовать такой CustomException исключительно внутри своего приложения, и у вашего приложения нет публичного API, через которое может пробрасываться такое исключение, то не вижу ничего страшного в использовании CustomException.