blob: 3e35e66386054eadc5a4784cbb81759ed2661ba6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
---
title: FileException
slug: Web/API/FileException
tags:
- API
- File API
- File System API
- オフライン
- ファイルシステム
- リファレンス
- 廃止
- 非標準
translation_of: Web/API/FileException
---
<div>{{APIRef("File System API")}}{{Non-standard_Header}}{{Obsolete_Header}}</div>
<p class="summsry"><a href="/ja/docs/Web/API/File_and_Directory_Entries_API/Introduction">File System API</a> では、<code>FileException</code> オブジェクトは、同期 API を使用してファイルシステムにアクセスする際に発生する可能性のあるエラー状態を表します。<a href="http://dev.w3.org/2009/dap/file-system/pub/FileSystem/#bib-FILE-WRITER">File Writer</a> で説明されている FileException インターフェイスを拡張し、いくつかの新しいエラーコードを追加します。</p>
<h2 id="基本コンセプト">基本コンセプト</h2>
<p>同期 API にはエラーコールバックがないため、エラーを捕捉することが困難です。この API で <a href="/ja/docs/Web/API/Worker">WebWorkers</a> を使用することの複雑さが増すと、デバッグがさらに困難になります。簡単にするには、worker コードを try/catch でラップしてください。エラーが発生した場合は、次のように <code>postMessage()</code> を使用してメインアプリに転送します。</p>
<pre class="brush: js notranslate">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);
} </pre>
<p><a href="http://www.html5rocks.com/en/tutorials/file/filesystem-sync/">HTML5Rocks</a> からサンプルコードを借用しました</p>
<h2 id="属性">属性</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">属性</th>
<th scope="col">タイプ</th>
<th scope="col">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td><a name="attr_code"><code>code</code></a></td>
<td><code>unsigned short</code></td>
<td>条件に最も適切なエラーコード。</td>
</tr>
</tbody>
</table>
<h2 id="定数">定数</h2>
<p>{{Note("定数の数値には依存しないでください。仕様の変更に伴い変更される可能性があります。代わりに定数名を使用してください。")}}</p>
<table class="standard-table">
<thead>
<tr>
<th scope="col">定数</th>
<th scope="col">値</th>
<th scope="col">説明</th>
</tr>
<tr>
<td><code><a name="NON_TRANSIENT_ERR">ENCODING_ERR</a></code></td>
<td>5</td>
<td>URL の形式が正しくありません。URL が完全で有効であることを確認してください。</td>
</tr>
<tr>
<td><code><a name="NON_TRANSIENT_ERR">INVALID_MODIFICATION_ERR</a></code></td>
<td>9</td>
<td>要求された変更は許可されていません。無効な変更の例としては、ディレクトリを自身の子に移動すること、または名前を変更せずに親ディレクトリにファイルを移動することが含まれます。</td>
</tr>
<tr>
<td><code><a name="CONSTRAINT_ERR">INVALID_STATE_ERR</a></code></td>
<td>7</td>
<td>インターフェイスオブジェクトの現在の状態で操作を実行することはできません。たとえば、インターフェイスオブジェクトにキャッシュされた状態は、ディスクから最後に読み取られた後に変更されているなどです。</td>
</tr>
<tr>
<td><code><a name="VER_ERR">NO_MODIFICATION_ALLOWED_ERR</a></code></td>
<td>6</td>
<td>ベースとなるファイルシステムの状態により、ファイルまたはディレクトリへの書き込みが許可されていません。</td>
</tr>
<tr>
<td><code><a name="NOT_FOUND_ERR">NOT_FOUND_ERR</a></code></td>
<td>1</td>
<td>操作が処理された時点で、必要なファイルまたはディレクトリが見つかりませんでした。たとえば、ファイルが存在せず、開かれている場合です。</td>
</tr>
</thead>
<tbody>
<tr>
<td><code><a name="NON_TRANSIENT_ERR">NOT_READABLE_ERR</a></code></td>
<td>4</td>
<td>
<p>ファイルまたはディレクトリを読み取ることはできません。通常、ファイルへの参照が取得された後に発生するアクセス許可の問題が原因です (たとえば、ファイルまたはディレクトリが別のアプリケーションによって同時にロックされている場合)。</p>
</td>
</tr>
<tr>
<td><code><a name="TIMEOUT_ERR">PATH_EXISTS_ERR</a></code></td>
<td>12</td>
<td>同じパスを持つファイルまたはディレクトリが既に存在します。</td>
</tr>
<tr>
<td><code><a name="QUOTA_ERR">QUOTA_EXCEEDED_ERR</a></code></td>
<td>10</td>
<td>
<p>残りのストレージスペースが不足しているか、ストレージクォータに達していて、ユーザーがデータベースにスペースを増やすことを拒否しました。</p>
</td>
</tr>
<tr>
<td><code><a name="SECURITY_ERR">SECURITY_ERR</a></code></td>
<td>2</td>
<td>
<p>ファイルへのアクセスは、次のいずれかの理由で拒否されました。</p>
<ul>
<li>これらのファイルは、Web アプリケーション内でアクセスするには安全でない可能性があります。</li>
<li>ファイルリソースの呼び出しが多すぎます。</li>
<li>その他の不特定のセキュリティエラーコードまたは状況。</li>
</ul>
</td>
</tr>
<tr>
<td><code><a name="READ_ONLY_ERR">TYPE_MISMATCH_ERR</a></code></td>
<td>11</td>
<td>ユーザーがファイルまたはディレクトリを検索しようとしましたが、見つかったエントリのタイプが間違っています。たとえば、ユーザーが FileEntry を要求しているときに、アプリケーションは DirectoryEntry にアクセスしている場合です。</td>
</tr>
</tbody>
</table>
<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザの互換性</h2>
<div class="hidden">このページの互換表は構造化データから生成されます。データに貢献したい場合は <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックし、プルリクエストを送信してください。</div>
<p>{{Compat("api.FileException")}}</p>
<h2 id="あわせて参照">あわせて参照</h2>
<p>仕様: {{spec("http://dev.w3.org/2009/dap/file-system/pub/FileSystem/", "File API: Directories and System Specification", "WD")}}</p>
<p>リファレンス: <a href="/en-US/docs/DOM/File_API/File_System_API" title="DOM/File_API/File_System_API">File System API</a></p>
<p>イントロダクション: <a href="/en-US/docs/DOM/File_APIs/Filesystem/Basic_Concepts_About_the_Filesystem_API" title="DOM/File_APIs/Filesystem/Basic_Concepts_About_the_Filesystem_API">Basic Concepts About the File System API</a></p>
|