Самое банальное - заключить тела функций в блоки try catch,где в catch уже производить действия с файлом. Дабы не повторяться можно вместо этого в catch использовать throw и производить запись во внешнем блоке try catch. Есть еще вариант использовать MiniDumpWriteDump,тогда и файл создавать не придется и получите исчерпывающую информацию об исключении,но этот метод в разы сложнее.