--- title: FileException slug: Web/API/FileException translation_of: Web/API/FileException ---
{{APIRef("File System API")}} {{Non-standard_header}}

在 文件系统 API 中, FileException 表示错误条件,你可能在使用同步 API 访问文件系统时遇到。它扩展了 FileException 接口,在 File Writer 中描述,并添加了几个新的错误代码。

基本概念

同步 API 没有错误回调,这使其难以捕获错误。和这个 API 一起使用 WebWorkers 的额外复杂性,使得调试更具有挑战性。为了使事情简化,将你的工作器代码包在 try/catch 里面。当错误发生时,使用 postMessage() 将它们转发给主应用,像这样:

function onError(e) {
  postMessage('ERROR:' + e.toString());
}

try {
  //Error is thrown if "log.txt" already exists.
var fileEntry = fs.root.getFile('log.txt', {create: true, exclusive:true}0;
} catch (e) {
  onErrror(e);
} 

示例代码取自 HTML5Rocks

属性

Attribute Type Description
code unsigned short 用于该条件的最合适的错误代码。

常量

{{Note("不要依赖于常量的数值,它可能随着规范改动而改动。使用常量名称来代替。")}}

常量 描述
ENCODING_ERR 5 URL 格式错误。确保 URL 是完整和有效的。
INVALID_MODIFICATION_ERR 9 请求的改动是不允许的。无效改动包括将目录移动到它的子目录中,或者将文件移动到它的父目录中,而没有修改它的名称。
INVALID_STATE_ERR 7 在接口对象的当前状态上,不能执行操作。例如,缓存在接口对象中的状态,自从上次从磁盘读取之后发生改变。
NO_MODIFICATION_ALLOWED_ERR 6 底层文件系统的状态阻止任何文件或者目录的写入。
NOT_FOUND_ERR 1 在操作执行时,所需文件或者目录无法找到。例如,打开了不存在的文件。
NOT_READABLE_ERR 4

文件或者目录不能读取,通常由于权限问题,出现在获取文件引用之后(例如,文件或者目录当前由另一个应用锁住)。

PATH_EXISTS_ERR 12 路径相同的文件或者目录已存在。
QUOTA_EXCEEDED_ERR 10

没有足够的剩余空间,或者存储器配额已达到,并且用户拒绝向数据库提供更多空间。

SECURITY_ERR 2

拒绝文件访问,由于下列原因之一:

  • 在 Web 应用中访问文件是不安全的。
  • 文件资源上有过多调用。
  • 其它未规定的安全错误代码或情况。
TYPE_MISMATCH_ERR 11 用户尝试检索文件或者目录,但是找到的条目类型错误。例如,应用正在访问 DirectoryEntry ,当用户请求 FileEntry 的时候。

浏览器兼容性

{{CompatibilityTable}}
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 13{{property_prefix("webkit")}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}}
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support {{CompatNo}} 0.16 {{property_prefix("webkit")}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}}

另见

规范:{{spec("http://dev.w3.org/2009/dap/file-system/pub/FileSystem/", "文件 API:目录和系统规范", "WD")}}

参考:文件系统 API

简介:文件系统 API 的基本概念