Open moda20 opened 4 years ago
Thanx for the report I'll investigate it. and add the possibility to catch errors.
I've just encountered something similar, where I can not handle the error in my code, with a NoSuchMethodError exception in id3v2.dart.
frame
, in the code below could be null it seems.
final frame = ff.getFrame(fr);
final m = frame.decode(fr);
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1 ID3V2Reader.parseValues
package:dart_tags/…/readers/id3v2.dart:71
#2 Reader.read.<anonymous closure>
package:dart_tags/…/readers/reader.dart:13
#3 _rootRunUnary (dart:async/zone.dart:1194:47)
#4 _CustomZone.runUnary (dart:async/zone.dart:1097:19)
#5 _FutureListener.handleValue (dart:async/future_impl.dart:150:18)
#6 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:703:45)
#7 Future._propagateToListeners (dart:async/future_impl.dart:732:32)
#8 Future._addListener.<anonymous closure> (dart:async/future_impl.dart:400:9)
#9 _rootRun (dart:async/zone.dart:1186:13)
#10 _CustomZone.run (dart:async/zone.dart:1090:19)
#11 _CustomZone.runGuarded (dart:async/zone.dart:994:7)
#12 _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1034:23)
#13 _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#14 _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
Another problem I found is that tags might be broken. In the one case the tag name was the actual description and that caused an error too. I wrapped that block at line 71 in a try/catch and it seems to now get through without problems.
final frame = ff.getFrame(fr);
final m = frame?.decode(fr);
try {
if (m?.key != null && m?.value != null) {
if (m?.value is KeyEntity) {
if (tags[m.key] == null) {
tags[m.key] = {m.value.key: m.value};
} else {
tags[m.key][m.value.key] = m.value;
}
} else {
tags[m.key] = m.value;
}
}
} catch (ex) {}
I encounter the same error as moda20 in a specific scenario in src/frames/id3v2/comm_frame.dart decodeBody
:
enc
is not UTF16splitIndex
is 0
=> sublist(3, splitIndex)
crashesMy guess is that data.indexOf(0x00)
would need the start
parameter set to 3.
Is there any chance that this will be fixed? I could send you the mp3 file for debugging.
Same here as all of you. Also cannot catch any exceptions
Describe the bug an error happens when reading tags from byteArray and I can't catch it, it will always crash my code and stop everything I am doing. The error is when decoding comments, see exact error below
Environment
To Reproduce Steps to reproduce the behavior:
Expected behavior The error might happen, but I need to be able to catch it.
Additional context