| OLD | NEW |
| (Empty) |
| 1 part of dart.core; | |
| 2 class Error {Error(); | |
| 3 static String safeToString(Object object) { | |
| 4 if (object is num || object is bool || null == object) { | |
| 5 return object.toString(); | |
| 6 } | |
| 7 if (object is String) { | |
| 8 return _stringToSafeString(object); | |
| 9 } | |
| 10 return _objectToString(object); | |
| 11 } | |
| 12 external static String _stringToSafeString(String string); | |
| 13 external static String _objectToString(Object object); | |
| 14 external StackTrace get stackTrace; | |
| 15 } | |
| 16 class AssertionError extends Error {} | |
| 17 class TypeError extends AssertionError {} | |
| 18 class CastError extends Error {} | |
| 19 class NullThrownError extends Error {String toString() => "Throw of null."; | |
| 20 } | |
| 21 class ArgumentError extends Error {final bool _hasValue; | |
| 22 final invalidValue; | |
| 23 final String name; | |
| 24 final message; | |
| 25 ArgumentError([this.message]) : invalidValue = null, _hasValue = false, name =
null; | |
| 26 ArgumentError.value(value, [String this.name, String this.message = "Invalid ar
gument"]) : invalidValue = value, _hasValue = true; | |
| 27 ArgumentError.notNull([String name]) : this.value(null, name, "Must not be null
"); | |
| 28 String toString() { | |
| 29 if (!_hasValue) { | |
| 30 var result = "Invalid arguments(s)"; | |
| 31 if (message != null) { | |
| 32 result = "$result: $message"; | |
| 33 } | |
| 34 return result; | |
| 35 } | |
| 36 String nameString = ""; | |
| 37 if (name != null) { | |
| 38 nameString = " ($name)"; | |
| 39 } | |
| 40 return "$message$nameString: ${Error.safeToString(invalidValue)}"; | |
| 41 } | |
| 42 } | |
| 43 class RangeError extends ArgumentError {final num start; | |
| 44 final num end; | |
| 45 RangeError(var message) : start = null, end = null, super(message); | |
| 46 RangeError.value(num value, [String name, String message]) : start = null, end
= null, super.value(value, name, (message != null) ? message : "Value not in ran
ge"); | |
| 47 RangeError.range(num invalidValue, int minValue, int maxValue, [String name, St
ring message]) : start = minValue, end = maxValue, super.value(invalidValue, nam
e, (message != null) ? message : "Invalid value"); | |
| 48 factory RangeError.index(int index, indexable, [String name, String message, in
t length]) = IndexError; | |
| 49 static void checkValueInInterval(int value, int minValue, int maxValue, [String
name, String message]) { | |
| 50 if (value < minValue || value > maxValue) { | |
| 51 throw new RangeError.range(value, minValue, maxValue, name, message); | |
| 52 } | |
| 53 } | |
| 54 static void checkValidIndex(int index, var indexable, [String name, int length,
String message]) { | |
| 55 if (length == null) length = DEVC$RT.cast(indexable.length, dynamic, int, "Dynam
icCast", """line 281, column 34 of dart:core/errors.dart: """, indexable.length
is int, true); | |
| 56 if (index < 0 || index >= length) { | |
| 57 if (name == null) name = "index"; | |
| 58 throw new RangeError.index(index, indexable, name, message, length); | |
| 59 } | |
| 60 } | |
| 61 static void checkValidRange(int start, int end, int length, [String startName,
String endName, String message]) { | |
| 62 if (start < 0 || start > length) { | |
| 63 if (startName == null) startName = "start"; | |
| 64 throw new RangeError.range(start, 0, length, startName, message); | |
| 65 } | |
| 66 if (end != null && (end < start || end > length)) { | |
| 67 if (endName == null) endName = "end"; | |
| 68 throw new RangeError.range(end, start, length, endName, message); | |
| 69 } | |
| 70 } | |
| 71 static void checkNotNegative(int value, [String name, String message]) { | |
| 72 if (value < 0) throw new RangeError.range(value, 0, null, name, message); | |
| 73 } | |
| 74 String toString() { | |
| 75 if (!_hasValue) return "RangeError: $message"; | |
| 76 String value = Error.safeToString(invalidValue); | |
| 77 String explanation = ""; | |
| 78 if (start == null) { | |
| 79 if (end != null) { | |
| 80 explanation = ": Not less than or equal to $end"; | |
| 81 } | |
| 82 } | |
| 83 else if (end == null) { | |
| 84 explanation = ": Not greater than or equal to $start"; | |
| 85 } | |
| 86 else if (end > start) { | |
| 87 explanation = ": Not in range $start..$end, inclusive."; | |
| 88 } | |
| 89 else if (end < start) { | |
| 90 explanation = ": Valid value range is empty"; | |
| 91 } | |
| 92 else { | |
| 93 explanation = ": Only valid value is $start"; | |
| 94 } | |
| 95 return "RangeError: $message ($value)$explanation"; | |
| 96 } | |
| 97 } | |
| 98 class IndexError extends ArgumentError implements RangeError {final indexable; | |
| 99 final int length; | |
| 100 IndexError(int invalidValue, indexable, [String name, String message, int lengt
h]) : this.indexable = indexable, this.length = (length != null) ? length : DEVC
$RT.cast(indexable.length, dynamic, int, "DynamicCast", """line 371, column 51 o
f dart:core/errors.dart: """, indexable.length is int, true), super.value(invali
dValue, name, (message != null) ? message : "Index out of range"); | |
| 101 int get start => 0; | |
| 102 int get end => length - 1; | |
| 103 String toString() { | |
| 104 assert (_hasValue); String target = Error.safeToString(indexable); | |
| 105 var explanation = "index should be less than $length"; | |
| 106 if (invalidValue < 0) { | |
| 107 explanation = "index must not be negative"; | |
| 108 } | |
| 109 return "RangeError: $message ($target[$invalidValue]): $explanation"; | |
| 110 } | |
| 111 } | |
| 112 class FallThroughError extends Error {FallThroughError(); | |
| 113 } | |
| 114 class AbstractClassInstantiationError extends Error {final String _className; | |
| 115 AbstractClassInstantiationError(String this._className); | |
| 116 String toString() => "Cannot instantiate abstract class: '$_className'"; | |
| 117 } | |
| 118 class NoSuchMethodError extends Error {final Object _receiver; | |
| 119 final Symbol _memberName; | |
| 120 final List _arguments; | |
| 121 final Map<Symbol, dynamic> _namedArguments; | |
| 122 final List _existingArgumentNames; | |
| 123 NoSuchMethodError(Object receiver, Symbol memberName, List positionalArguments,
Map<Symbol, dynamic> namedArguments, [List existingArgumentNames = null]) : _re
ceiver = receiver, _memberName = memberName, _arguments = positionalArguments, _
namedArguments = namedArguments, _existingArgumentNames = existingArgumentNames; | |
| 124 external String toString(); | |
| 125 } | |
| 126 class UnsupportedError extends Error {final String message; | |
| 127 UnsupportedError(this.message); | |
| 128 String toString() => "Unsupported operation: $message"; | |
| 129 } | |
| 130 class UnimplementedError extends Error implements UnsupportedError {final Strin
g message; | |
| 131 UnimplementedError([String this.message]); | |
| 132 String toString() => (this.message != null ? "UnimplementedError: $message" : "
UnimplementedError"); | |
| 133 } | |
| 134 class StateError extends Error {final String message; | |
| 135 StateError(this.message); | |
| 136 String toString() => "Bad state: $message"; | |
| 137 } | |
| 138 class ConcurrentModificationError extends Error {final Object modifiedObject; | |
| 139 ConcurrentModificationError([this.modifiedObject]); | |
| 140 String toString() { | |
| 141 if (modifiedObject == null) { | |
| 142 return "Concurrent modification during iteration."; | |
| 143 } | |
| 144 return "Concurrent modification during iteration: " "${Error.safeToString(modif
iedObject)}."; | |
| 145 } | |
| 146 } | |
| 147 class OutOfMemoryError implements Error {const OutOfMemoryError(); | |
| 148 String toString() => "Out of Memory"; | |
| 149 StackTrace get stackTrace => null; | |
| 150 } | |
| 151 class StackOverflowError implements Error {const StackOverflowError(); | |
| 152 String toString() => "Stack Overflow"; | |
| 153 StackTrace get stackTrace => null; | |
| 154 } | |
| 155 class CyclicInitializationError extends Error {final String variableName; | |
| 156 CyclicInitializationError([this.variableName]); | |
| 157 String toString() => variableName == null ? "Reading static variable during its
initialization" : "Reading static variable '$variableName' during its initializ
ation"; | |
| 158 } | |
| OLD | NEW |