Index: runtime/bin/file.dart |
diff --git a/runtime/bin/file.dart b/runtime/bin/file.dart |
index b9d906b9c67a425780e801938fba923376903508..3cc923d81c3bb1121b4a307c1b567c545ffc8329 100644 |
--- a/runtime/bin/file.dart |
+++ b/runtime/bin/file.dart |
@@ -204,7 +204,7 @@ interface File default _File { |
* Sets the handler that gets called when errors occur during |
* operations on this file. |
*/ |
- void set onError(void handler(String error)); |
+ void set onError(void handler(Exception e)); |
} |
@@ -366,7 +366,21 @@ interface RandomAccessFile { |
class FileIOException implements Exception { |
- const FileIOException([String this.message = ""]); |
- String toString() => "FileIOException: $message"; |
+ const FileIOException([String this.message = "", |
+ OSError this.osError = null]); |
+ String toString() { |
+ StringBuffer sb = new StringBuffer(); |
+ sb.add("FileIOException"); |
+ if (!message.isEmpty()) { |
+ sb.add(": $message"); |
+ if (osError != null) { |
+ sb.add(" ($osError)"); |
+ } |
+ } else if (osError != null) { |
+ sb.add(": osError"); |
+ } |
+ return sb.toString(); |
+ } |
final String message; |
+ final OSError osError; |
} |