Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从文件中获取nsIX509CertDB importCertsFromFile失败原因?_Javascript_Firefox_Firefox Addon_Xul - Fatal编程技术网

Javascript 从文件中获取nsIX509CertDB importCertsFromFile失败原因?

Javascript 从文件中获取nsIX509CertDB importCertsFromFile失败原因?,javascript,firefox,firefox-addon,xul,Javascript,Firefox,Firefox Addon,Xul,当我使用nsIX509CertDB接口组件的importCertsFromFile()方法时,任何故障似乎都会引发相同的异常: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIX509CertDB.importCertsFromFile] 有没有办法确定失败的原因 有时,它会显示一个带有原因的警报,如“该证书已安装”。有时它只是在没有任何内置警报的情况下抛出异常,例如选择word文档或任何非=证书文件 cer

当我使用
nsIX509CertDB
接口组件的
importCertsFromFile()
方法时,任何故障似乎都会引发相同的异常:

Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIX509CertDB.importCertsFromFile]
有没有办法确定失败的原因

有时,它会显示一个带有原因的警报,如“该证书已安装”。有时它只是在没有任何内置警报的情况下抛出异常,例如选择word文档或任何非=证书文件

certdb = components.classes[nsX509CertDB].getService(Components.interfaces.nsIX509CertDB);   

try{
   certdb.importCertsFromFile(null, fp.file, nsIX509Cert.CA_CERT);
   alert('The certificate was added succesfully!');
}catch(e){
   alert(e);
}

我想确定失败的原因,这样,如果组件在这种情况下还没有错误,我就可以显示正确的错误消息。这是可能的吗?

由于XPCOM包装器对NSS和大多数NSS的实现方式,没有比这些异常更详细的错误了。您可以自己看到:被
NS\u ERROR\u FAILURE
返回(通过XPConnect桥在Javascript异常中进行转换)所困扰,但实际上仅此而已。此外,这些问题一开始也不是很详细


因此,大多数情况下都会出现非描述性的
NS\u ERROR\u FAILURE
,如果无法访问文件,则偶尔会在混合中添加一些
NS\u ERROR\u FILE.*
异常。

因为XPCOM包装器对NSS和大多数NSS的实现方式,没有比这些异常更详细的错误了。您可以自己看到:被
NS\u ERROR\u FAILURE
返回(通过XPConnect桥在Javascript异常中进行转换)所困扰,但实际上仅此而已。此外,这些问题一开始也不是很详细


因此,大多数情况下都会出现非描述性的
NS\u ERROR\u FAILURE
,如果文件无法访问,则偶尔会在混合中添加一些
NS\u ERROR\u FILE.*
异常。

这当然是不幸的。我们所能做的就是说,“出了问题。你可能(或可能没有)收到了原因。如果你没有收到原因,就没有可用的原因。请再试一次。”这当然是不幸的。我们所能做的就是说:“出了问题。您可能(或可能没有)收到了原因。如果您没有收到原因,则没有可用的原因。请重试。”