Использование библиотеки EXIF ​​для извлечения метаданных из медиафайлов jpg вызывает ошибку, которая не обрабатывается Javascript

Форум по Javascript
Ответить
Anonymous
 Использование библиотеки EXIF ​​для извлечения метаданных из медиафайлов jpg вызывает ошибку, которая не обрабатывается

Сообщение Anonymous »

Я пишу небольшую программу на JavaScript, которая сканирует содержимое папки, в которой хранятся сотни или тысячи файлов изображений, извлекает некоторые элементы данных из каждого файла изображения (например, метку времени + координаты GPS) и записывает текстовый файл с массивом JSON вида:

Код: Выделить всё

[{"File":"20250912_131538.jpg","Timestamp":"2025-09-12T13:15:22","GPS_Latitude":23.4544454,"GPS_Longitude":78.345428354},
{"File":"20250912_131538.jpg","Timestamp":"2025-09-12T13:15:22","GPS_Latitude":23.4544411,"GPS_Longitude":78.345428301},
...
]
Все работает нормально (то есть десятки файлов обрабатываются должным образом), пока ошибка в функции EXIF ​​не приводит к остановке процесса.
Я пытался поместить вызов EXIF ​​в блок try-catch, но программа все равно останавливается.
Поскольку одной из возможных причин является асинхронный вызов, я добавил в распечатки следующее: следует:

Код: Выделить всё

try {
console.log("----- Before invoking EXIF...")

l_EXIF_Returned_Value = EXIF.getData(l_Thumb, function() {

console.log("----- After invoking EXIF...")

[rest of the code...]
В консоли:

Код: Выделить всё

----- Before invoking EXIF...
exif.js:742  Uncaught RangeError: Offset is outside the bounds of the DataView
...
Итак, вызов синхронен, и все же кажется, что исключение не перехватывается структурой try-catch.
Кто-нибудь когда-нибудь сталкивался с таким поведением (

Код: Выделить всё

try-catch
не работает?
Любое предложение будет оценено по достоинству.

Подробнее здесь: https://stackoverflow.com/questions/797 ... error-that
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»