aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/api/fileerror/index.html
blob: 07e4aa765170a3ab45c3bd1f2704269e31222dc9 (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
---
title: FileError
slug: Web/API/FileError
tags:
  - API
  - File API
  - ファイル
  - リファレンス
  - 廃止
translation_of: Web/API/FileError
---
<div>{{APIRef("File System API")}}{{obsolete_header}}</div>

<p>{{domxref("FileReader")}} インターフェイスの使用中に発生するエラーを表します。</p>

<div class="note">
<p><strong>メモ:</strong> このインターフェイスは、最新の仕様では廃止されています。代わりに新しい DOM4 {{domxref("DOMError")}} インターフェイスを使用してください。</p>
</div>

<p><a href="/ja/docs/Web/API/File_System_API/Introduction">File System API</a> では、<code>FileError</code> は非同期 API を使用してファイルシステムにアクセスする際に発生する可能性があるエラーの状態を表します。<a class="external external-icon" href="http://dev.w3.org/2009/dap/file-system/pub/FileSystem/#bib-FILE-WRITER">File Writer</a> で説明されている <code>FileError</code> インターフェイスを拡張し、いくつかの新しいエラーコードを追加します。</p>

<p><code>FileError</code> オブジェクトはエラーコールバックに渡されます。オブジェクトには、発生したエラーの種類を示すコードがあります。</p>

<h2 id="ベストプラクティス">ベストプラクティス</h2>

<p>ほとんどの人は、困惑していない限り、エラーや例外に関するページを読んでいません。したがって、いくつかの落とし穴を避けるのに役立つヒントを次に示します。</p>

<h3 id="エラーコールバックはあなたの正気のためのオプションではありません">エラーコールバックはあなたの正気のためのオプションではありません</h3>

<p>エラーコールバックはオプションですが、ユーザーの正当性のためにメソッドの引数に含める必要があります。ウェブアプリはさまざまな理由で失敗する可能性があるので、残りの部分は何かを推測してトラブルシューティングをすることは避けてください。</p>

<h3 id="file_からアプリを実行しないでください">file:// <span class="short_text" lang="ja"><span>からアプリを実行しないでください</span></span></h3>

<p>セキュリティ上の理由から、ブラウザでは <code>file://</code> からアプリを実行することはできません。実際、File System、BlobBuilder、FileReader といった強力なストレージ API の多くは、<code>file://</code> からローカルでアプリケーションを実行するとエラーが発生します。 アプリをテストしているだけで、ウェブサーバーを設定したくない場合は、Chrome のセキュリティ制限を回避できます。 <code>--allow-file-access-from-files</code> フラグを付けて Chrome を起動してください。このフラグは、テスト目的でのみ使用してください。</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><code>code</code></a></td>
   <td><code>unsigned short</code></td>
   <td>条件に最も適切なエラーコード。可能な値については {{anch("Error codes")}} を参照してください。</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>ENCODING_ERR</a></code></td>
   <td>5</td>
   <td>URL の形式が正しくありません。URL が完全で有効であることを確認してください。</td>
  </tr>
  <tr>
   <td><code><a>INVALID_MODIFICATION_ERR</a></code></td>
   <td>9</td>
   <td>要求された変更は許可されていません。 たとえば、アプリケーションがディレクトリを独自の子に移動しようとしているか、名前を変更せずに親ディレクトリにファイルを移動しようとしている可能性があります。</td>
  </tr>
  <tr>
   <td><code><a>INVALID_STATE_ERR</a></code></td>
   <td>7</td>
   <td>インターフェイスオブジェクトの現在の状態で操作を実行することはできません。たとえば、インターフェイスオブジェクトにキャッシュされた状態は、ディスクから最後に読み取られた後に変更されています。</td>
  </tr>
  <tr>
   <td><code><a>NO_MODIFICATION_ALLOWED_ERR</a></code></td>
   <td>6</td>
   <td>ベースとなるファイルシステムの状態によって、ファイルまたはディレクトリへの書き込みが妨げられています。</td>
  </tr>
  <tr>
   <td><code><a>NOT_FOUND_ERR</a></code></td>
   <td>1</td>
   <td>操作が処理された時点で、必要なファイルまたはディレクトリが見つかりませんでした。たとえば、ファイルが存在せず、開かれている場合です。</td>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td><code><a>NOT_READABLE_ERR</a></code></td>
   <td>4</td>
   <td>ファイルまたはディレクトリを読み取ることはできません。通常、ファイルへの参照が取得された後に発生するアクセス許可の問題が原因です (たとえば、ファイルまたはディレクトリが別のアプリケーションによって同時にロックされているなど)。</td>
  </tr>
  <tr>
   <td><code><a>PATH_EXISTS_ERR</a></code></td>
   <td>12</td>
   <td>同じパスを持つファイルまたはディレクトリが既に存在します。</td>
  </tr>
  <tr>
   <td><code><a>QUOTA_EXCEEDED_ERR</a></code></td>
   <td>10</td>
   <td>残りのストレージスペースが不足しているか、ストレージクォータに達していて、ユーザーがデータベースにスペースを増やすことを拒否しました。保存容量の追加については、<a href="http://code.google.com/chrome/whitepapers/storage.html">HTML5 オフラインストレージの管理</a>をご覧ください。</td>
  </tr>
  <tr>
   <td><code><a>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>TYPE_MISMATCH_ERR</a></code></td>
   <td>11</td>
   <td><span id="result_box" lang="ja"><span>アプリはエントリを検索しましたが、見つかったエントリのタイプが間違っています。</span><span>たとえば、エントリが実際にファイルである場合、アプリケーションはディレクトリを要求しています。</span></span></td>
  </tr>
 </tbody>
</table>

<h2 id="ブラウザの互換性">ブラウザの互換性</h2>

<p>{{Compat("api.FileError")}}</p>

<h2 id="あわせて参照">あわせて参照</h2>

<ul>
 <li><a href="/ja/docs/Web/API/File_System_API/Introduction">Basic Concepts About the File System API</a></li>
 <li>{{domxref("FileReader")}}</li>
 <li>{{domxref("File")}}</li>
 <li>{{domxref("Blob")}}</li>
 <li>{{spec("http://www.w3.org/TR/file-system-api/#errors-and-exceptions", "Specification: FileAPI Errors and exceptions", "WD")}}</li>
</ul>