Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1084)

Unified Diff: runtime/bin/directory_impl.dart

Issue 9630012: Error reporting on File in dart:io (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Style issues Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/bin/directory.dart ('k') | runtime/bin/directory_posix.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/bin/directory_impl.dart
diff --git a/runtime/bin/directory_impl.dart b/runtime/bin/directory_impl.dart
index f69de08a7173afa59520d1620d139c5a1522266e..aad55ffa9d0372b718dd9160319df037b1c725bc 100644
--- a/runtime/bin/directory_impl.dart
+++ b/runtime/bin/directory_impl.dart
@@ -3,13 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
-// Used for holding error code and error message for failed OS system calls.
-class _OSStatus {
- int _errorCode;
- String _errorMessage;
-}
-
-
class _Directory implements Directory {
static final kCreateRequest = 0;
static final kDeleteRequest = 1;
@@ -21,8 +14,7 @@ class _Directory implements Directory {
_Directory.current() : _path = _current();
static String _current() native "Directory_Current";
- static String _createTemp(String template,
- _OSStatus status) native "Directory_CreateTemp";
+ static _createTemp(String template) native "Directory_CreateTemp";
static int _exists(String path) native "Directory_Exists";
static bool _create(String path) native "Directory_Create";
static bool _delete(String path, bool recursive) native "Directory_Delete";
@@ -47,7 +39,7 @@ class _Directory implements Directory {
bool existsSync() {
int exists = _exists(_path);
if (exists < 0) {
- throw new DirectoryException("Diretory exists test failed: $_path");
+ throw new DirectoryIOException("Diretory exists test failed: $_path");
}
return (exists == 1);
}
@@ -68,7 +60,7 @@ class _Directory implements Directory {
void createSync() {
if (!_create(_path)) {
- throw new DirectoryException("Directory creation failed: $_path");
+ throw new DirectoryIOException("Directory creation failed: $_path");
}
}
@@ -89,16 +81,15 @@ class _Directory implements Directory {
}
void createTempSync() {
- var status = new _OSStatus();
- var result = _createTemp(path, status);
- if (result != null) {
- _path = result;
- } else {
- throw new DirectoryException(
- "Could not create temporary directory [$_path]: " +
- "${status._errorMessage}",
- status._errorCode);
+ if (_path is !String) {
+ throw new IllegalArgumentException();
+ }
+ var result = _createTemp(path);
+ if (result is OSError) {
+ throw new DirectoryIOException("Could not create temporary directory",
+ result);
}
+ _path = result;
}
void _deleteHelper(bool recursive, String errorMsg, void callback()) {
@@ -127,14 +118,14 @@ class _Directory implements Directory {
void deleteSync() {
bool recursive = false;
if (!_delete(_path, recursive)) {
- throw new DirectoryException("Directory deletion failed: $_path");
+ throw new DirectoryIOException("Directory deletion failed: $_path");
}
}
void deleteRecursivelySync() {
bool recursive = true;
if (!_delete(_path, recursive)) {
- throw new DirectoryException(
+ throw new DirectoryIOException(
"Recursive directory deletion failed: $_path");
}
}
« no previous file with comments | « runtime/bin/directory.dart ('k') | runtime/bin/directory_posix.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698