我已经用dart编写了一个简单的命令行工具,如果目录不存在,我会监视目录中的更改。我得到FileSystemsException。
我尝试使用try和catch子句来处理它。发生异常时,catch子句中的代码不会执行
try {
watcher.events.listen((event) {
if (event.type == ChangeType.ADD) {
print("THE FILE WAS ADDED");
print(event.path);
} else if (event.type == ChangeType.MODIFY) {
print("THE FILE WAS MODIFIED");
print(event.path);
} else {
print("THE FILE WAS REMOVED");
print(event.path);
}
});
} on FileSystemException {
print("Exception Occurs");
}
我希望控制台显示“发生异常”
答案 0 :(得分:0)
有两种可能性:
ready
Future。您可以为异步异常添加处理程序,如下所示:
try {
// If this is in an `async` method, use `await` within the try block
await watcher.ready;
// Otherwise add a error handler on the Future
watcher.ready.catchError((e) {
print('Exception in the ready Future');
});
watcher.events.listen((event) {
...
}, onError: (e) {
print('Exception in the Stream');
});
} on FileSystemException {
print("Exception Occurs");
}
我的猜测是在ready
的未来中浮出水面。