如何传播文件加载错误

How to propagate file load error?

本文关键字:文件 加载 错误 传播 何传播      更新时间:2023-09-26

我正在尝试编写一个基于浏览器的医学图像查看器,并使用XTK库来完成繁重的工作。当一个文件没有正确加载(任何原因),我想让用户知道一个弹出消息(例如说"文件无法加载")。据我所知,所有的错误处理/抛出都发生在loader.js或parser.js文件的深处。

更具体地说,当我下载这个文件并尝试用slicdrop加载它时,我在控制台中得到以下错误:
Uncaught Error: invalid file signature:

这个错误在gunzip.js中被抛出。在其他时候,我有:

Uncaught Error: Loading failed:

在loader.js中被抛出。

有没有人知道我如何去捕捉或传递这些错误更高的链(即在JavaScript代码像XTK教程13?)。我尝试了以下方法:

try 
    sliceX.render();
catch(err)
    console.log('ERROR');

但是这并没有捕获任何错误(我想这是由于文件加载的异步性质)。

X.renderer有一个onShowtime函数,当所有加载完成时调用。我会想象一个类似的函数,如onLoadError或其他loadingError事件?

我能想到的一个解决方案是添加类似下面代码的东西,在这里我可以查询错误消息,看看它们是否与错误文件加载引发的特定错误相匹配:

<script  type="text/javascript">
  window.onerror = function (errorMsg, url, lineNumber) {
  if(errowMsg == 'invalid file signature')
      alert(errorMsg);
  };
</script>

感觉很粗糙…?如果能听听别人的意见就太好了

欢呼戴夫