| Index: pkg/front_end/lib/memory_file_system.dart | 
| diff --git a/pkg/front_end/lib/memory_file_system.dart b/pkg/front_end/lib/memory_file_system.dart | 
| index 6c57167a87d45e1620fadab02a82fe585658256d..f53f24a8632bfe875f00a81f20e9cbb8d72520fd 100644 | 
| --- a/pkg/front_end/lib/memory_file_system.dart | 
| +++ b/pkg/front_end/lib/memory_file_system.dart | 
| @@ -67,32 +67,36 @@ class MemoryFileSystemEntity implements FileSystemEntity { | 
| identical(other._fileSystem, _fileSystem); | 
|  | 
| @override | 
| -  Future<List<int>> readAsBytes() async { | 
| -    List<int> contents = _fileSystem._files[uri]; | 
| -    if (contents != null) { | 
| -      return contents.toList(); | 
| -    } | 
| -    throw new Exception('File does not exist'); | 
| -  } | 
| - | 
| -  @override | 
| -  Future<String> readAsString() async { | 
| -    List<int> contents = await readAsBytes(); | 
| -    return UTF8.decode(contents); | 
| -  } | 
| - | 
| -  @override | 
| Future<bool> exists() async => _fileSystem._files[uri] != null; | 
|  | 
| @override | 
| Future<DateTime> lastModified() async { | 
| var lastModified = _fileSystem._lastModified[uri]; | 
| if (lastModified == null) { | 
| -      throw new Exception('File does not exist'); | 
| +      throw new FileSystemException(uri, 'File $uri does not exist.'); | 
| } | 
| return lastModified; | 
| } | 
|  | 
| +  @override | 
| +  Future<List<int>> readAsBytes() async { | 
| +    List<int> contents = _fileSystem._files[uri]; | 
| +    if (contents == null) { | 
| +      throw new FileSystemException(uri, 'File $uri does not exist.'); | 
| +    } | 
| +    return contents.toList(); | 
| +  } | 
| + | 
| +  @override | 
| +  Future<String> readAsString() async { | 
| +    List<int> bytes = await readAsBytes(); | 
| +    try { | 
| +      return UTF8.decode(bytes); | 
| +    } on FormatException catch (e) { | 
| +      throw new FileSystemException(uri, e.message); | 
| +    } | 
| +  } | 
| + | 
| /// Writes the given raw bytes to this file system entity. | 
| /// | 
| /// If no file exists, one is created.  If a file exists already, it is | 
|  |