Андрей Как писал к логу (здесь добавлю номера для референсов):
(1) Пытаюсь открыть лицо — в логе ошибка про файл E:\TONFOTOS\2010\2010-06-26\DSC_0672 (1).JPG
(2) При этом лицо и превью в GUI — из файла E:\TONFOTOS\2014\2014-07-13\DSC03296.JPG
(3) И есть еще файл с таким же именем про другое — E:\TONFOTOS\2017\2017-10-02\DSC03296.JPG
Суть ошибки: Миниатюру вижу из (2). Кликаю ее и смотрю в лог - там ошибка про (1) почему-то.
Возможные обстоятельства: При попытках разобраться, что к чему - нахожу, что с именем (2) есть еще файл с таким же именем (3), но картинка в нем совсем другая - видимо, это просто такое совпадение, но вдруг это как-то повлияло на логику программы… В следующий раз при такой ошибке попробую поймать файл без таких обстоятельств.
Где именно логировать: Я бы в своей программе (я их тоже пишу помаленьку) искал, откуда берется “undefined” в процедуре открытия файла и просмотра фотки. Деление на ноль, пустой указатель, нет прав на чтение - что? Могу только добавить, что фотка начинает правильно отображаться (то есть файл успешно читается, его содержимое на канву рисуется), но затем сразу поверх выскакивает это сообщение об ошибке, а сама фотка позади становится чуть размытой (или она изначально такой грузится?). Меня это наводит на мысль, что если в формате графического файла JPEG есть какое-то превью-изображение, то оно грузится и отображается, а вот загрузка или показ основного изображения срывается. Еще вариант - превью идет из кэша, а сам файл не читается (но это не так - другими программами файл смотрится).
Почему в лог идут не те имена файлов - это уже другой вопрос к БД и управлению кэшем. Хотя я записал несколько логов - там были и совсем иные имена файлов и процессов - не к процедуре просмотра.