| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 class Error { | 5 class Error { |
| 6 const Error(); | 6 const Error(); |
| 7 } | 7 } |
| 8 | 8 |
| 9 /** | 9 /** |
| 10 * Error thrown by the runtime system when an assert statement fails. | 10 * Error thrown by the runtime system when an assert statement fails. |
| 11 */ | 11 */ |
| 12 class AssertionError implements Error { | 12 class AssertionError implements Error { |
| 13 } | 13 } |
| 14 | 14 |
| 15 /** | 15 /** |
| 16 * Error thrown by the runtime system when a type assertion fails. | 16 * Error thrown by the runtime system when a type assertion fails. |
| 17 */ | 17 */ |
| 18 class TypeError implements AssertionError { | 18 class TypeError implements AssertionError { |
| 19 } | 19 } |
| 20 | 20 |
| 21 /** | 21 /** |
| 22 * Error thrown by the runtime system when a cast operation fails. | 22 * Error thrown by the runtime system when a cast operation fails. |
| 23 */ | 23 */ |
| 24 class CastError implements Error { | 24 class CastError implements Error { |
| 25 } | 25 } |
| 26 | 26 |
| 27 /** | 27 /** |
| 28 * Error thrown when a function is passed an unacceptable argument. | 28 * Error thrown when a function is passed an unacceptable argument. |
| 29 */ | 29 */ |
| 30 class ArgumentError implements Error { | 30 class ArgumentError implements Error { |
| 31 final message; | 31 final message; |
| 32 | 32 |
| 33 /** The [message] describes the erroneous argument. */ | 33 /** The [message] describes the erroneous argument. */ |
| 34 const ArgumentError([this.message = ""]); | 34 const ArgumentError([this.message]); |
| 35 | 35 |
| 36 String toString() { | 36 String toString() { |
| 37 if (message != null) { | 37 if (message != null) { |
| 38 return "Illegal argument(s): $message"; | 38 return "Illegal argument(s): $message"; |
| 39 } | 39 } |
| 40 return "Illegal argument(s)"; | 40 return "Illegal argument(s)"; |
| 41 } | 41 } |
| 42 } | 42 } |
| 43 | 43 |
| 44 /** | 44 /** |
| 45 * Exception thrown because of an index outside of the valid range. | 45 * Exception thrown because of an index outside of the valid range. |
| 46 * | 46 * |
| 47 * Temporarily extends [Exception] for backwards compatiblity. | 47 * Temporarily implements [IndexOutOfRangeException] for backwards compatiblity. |
| 48 */ | 48 */ |
| 49 class RangeError extends ArgumentError implements Exception { | 49 class RangeError extends ArgumentError implements IndexOutOfRangeException { |
| 50 // TODO(lrn): This constructor should be called only with string values. | 50 // TODO(lrn): This constructor should be called only with string values. |
| 51 // It currently isn't in all cases. | 51 // It currently isn't in all cases. |
| 52 /** Create a new [RangeError] with the given [message]. */ | 52 /** |
| 53 RangeError(var message) : super("$message"); | 53 * Create a new [RangeError] with the given [message]. |
| 54 * |
| 55 * Temporarily made const for backwards compatibilty. |
| 56 */ |
| 57 const RangeError(var message) : super(message); |
| 54 | 58 |
| 55 /** Create a new [RangeError] with a message for the given [value]. */ | 59 /** Create a new [RangeError] with a message for the given [value]. */ |
| 56 RangeError.value(num value) : super("value $value"); | 60 RangeError.value(num value) : super("value $value"); |
| 57 | 61 |
| 58 String toString() => "RangeError: $message"; | 62 String toString() => "RangeError: $message"; |
| 59 } | 63 } |
| 60 | 64 |
| 61 /** | 65 /** |
| 62 * Temporary backwards compatibilty class. | 66 * Temporary backwards compatibilty class. |
| 63 * | 67 * |
| 64 * This class allows code throwing the old [IndexOutOfRangeException] to | 68 * This class allows code throwing the old [IndexOutOfRangeException] to |
| 65 * work until they change to the new [RangeError] name. | 69 * work until they change to the new [RangeError] name. |
| 66 * Code **catching** IndexOutOfRangeException will fail to catch | 70 * Constructor of [RangeError] is const only to support this interface. |
| 67 * the [RangeError] objects that are now thrown. | |
| 68 */ | 71 */ |
| 69 class IndexOutOfRangeException extends ArgumentError { | 72 interface IndexOutOfRangeException extends Exception default RangeError { |
| 70 IndexOutOfRangeException(var message) : super(message); | 73 const IndexOutOfRangeException(var message); |
| 71 } | 74 } |
| 72 | 75 |
| 73 | 76 |
| 74 /** | 77 /** |
| 75 * Temporary backwards compatibility class. | 78 * Temporary backwards compatibility class. |
| 76 * | 79 * |
| 77 * Removed when users have had time to change to using [ArgumentError]. | 80 * Removed when users have had time to change to using [ArgumentError]. |
| 78 */ | 81 */ |
| 79 class IllegalArgumentException extends ArgumentError { | 82 class IllegalArgumentException extends ArgumentError { |
| 80 const IllegalArgumentException([argument = ""]) : super(argument); | 83 const IllegalArgumentException([argument = ""]) : super(argument); |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 221 | 224 |
| 222 class OutOfMemoryError implements Error { | 225 class OutOfMemoryError implements Error { |
| 223 const OutOfMemoryError(); | 226 const OutOfMemoryError(); |
| 224 String toString() => "Out of Memory"; | 227 String toString() => "Out of Memory"; |
| 225 } | 228 } |
| 226 | 229 |
| 227 class StackOverflowError implements Error { | 230 class StackOverflowError implements Error { |
| 228 const StackOverflowError(); | 231 const StackOverflowError(); |
| 229 String toString() => "Stack Overflow"; | 232 String toString() => "Stack Overflow"; |
| 230 } | 233 } |
| OLD | NEW |