]> git.llucax.com Git - software/druntime.git/commitdiff
* Reclassified most runtime-generated errors as Errors rather than Exceptions. This...
authorsean <sean@4a9d5153-6564-4b3f-b5e1-7e8e9dac548f>
Fri, 31 Oct 2008 23:13:27 +0000 (23:13 +0000)
committersean <sean@4a9d5153-6564-4b3f-b5e1-7e8e9dac548f>
Fri, 31 Oct 2008 23:13:27 +0000 (23:13 +0000)
* Renamed ArrayBoundsException to RangeError in an attempt to be more general.
* Renamed onArrayBoundsError callback to onRangeError to make handling of these conditions more general as well.  Ideally, this will allow the same callback to be used for other purposes in the future.

git-svn-id: http://svn.dsource.org/projects/druntime/trunk@42 4a9d5153-6564-4b3f-b5e1-7e8e9dac548f

src/common/core/exception.d
src/compiler/dmd/dmain2.d

index a9178cf8ec75a7d283322b4d7ef71557451691fb..5d3018f1cb186cac293a2aa7ac00d195a9360f28 100644 (file)
@@ -11,20 +11,20 @@ module core.exception;
 
 private
 {
-    alias void  function( string file, size_t line, string msg = null ) assertHandlerType;
+    alias void function( string file, size_t line, string msg = null ) assertHandlerType;
 
-    assertHandlerType   assertHandler   = null;
+    assertHandlerType assertHandler   = null;
 }
 
 
 /**
- * Thrown on an array bounds error.
+ * Thrown on a range error.
  */
-class ArrayBoundsException : Exception
+class RangeError : Error
 {
     this( string file, size_t line )
     {
-        super( "Array index out of bounds", file, line );
+        super( "Range violation", file, line );
     }
 }
 
@@ -32,7 +32,7 @@ class ArrayBoundsException : Exception
 /**
  * Thrown on an assert error.
  */
-class AssertException : Exception
+class AssertError : Error
 {
     this( string file, size_t line )
     {
@@ -49,7 +49,7 @@ class AssertException : Exception
 /**
  * Thrown on finalize error.
  */
-class FinalizeException : Exception
+class FinalizeError : Error
 {
     ClassInfo   info;
 
@@ -69,7 +69,7 @@ class FinalizeException : Exception
 /**
  * Thrown on hidden function error.
  */
-class HiddenFuncException : Exception
+class HiddenFuncError : Error
 {
     this( ClassInfo ci )
     {
@@ -81,7 +81,7 @@ class HiddenFuncException : Exception
 /**
  * Thrown on an out of memory error.
  */
-class OutOfMemoryException : Exception
+class OutOfMemoryError : Error
 {
     this( string file, size_t line )
     {
@@ -98,7 +98,7 @@ class OutOfMemoryException : Exception
 /**
  * Thrown on a switch error.
  */
-class SwitchException : Exception
+class SwitchError : Error
 {
     this( string file, size_t line )
     {
@@ -146,8 +146,7 @@ void setAssertHandler( assertHandlerType h )
 
 /**
  * A callback for assert errors in D.  The user-supplied assert handler will
- * be called if one has been supplied, otherwise an AssertException will be
- * thrown.
+ * be called if one has been supplied, otherwise an AssertError will be thrown.
  *
  * Params:
  *  file = The name of the file that signaled this error.
@@ -156,15 +155,14 @@ void setAssertHandler( assertHandlerType h )
 extern (C) void onAssertError( string file, size_t line )
 {
     if( assertHandler is null )
-        throw new AssertException( file, line );
+        throw new AssertError( file, line );
     assertHandler( file, line );
 }
 
 
 /**
  * A callback for assert errors in D.  The user-supplied assert handler will
- * be called if one has been supplied, otherwise an AssertException will be
- * thrown.
+ * be called if one has been supplied, otherwise an AssertError will be thrown.
  *
  * Params:
  *  file = The name of the file that signaled this error.
@@ -174,7 +172,7 @@ extern (C) void onAssertError( string file, size_t line )
 extern (C) void onAssertErrorMsg( string file, size_t line, string msg )
 {
     if( assertHandler is null )
-        throw new AssertException( msg, file, line );
+        throw new AssertError( msg, file, line );
     assertHandler( file, line, msg );
 }
 
@@ -185,78 +183,77 @@ extern (C) void onAssertErrorMsg( string file, size_t line, string msg )
 
 
 /**
- * A callback for array bounds errors in D.  An ArrayBoundsException will be
- * thrown.
+ * A callback for array bounds errors in D.  A RangeError will be thrown.
  *
  * Params:
  *  file = The name of the file that signaled this error.
  *  line = The line number on which this error occurred.
  *
  * Throws:
- *  ArrayBoundsException.
+ *  RangeError.
  */
-extern (C) void onArrayBoundsError( string file, size_t line )
+extern (C) void onRangeError( string file, size_t line )
 {
-    throw new ArrayBoundsException( file, line );
+    throw new RangeError( file, line );
 }
 
 
 /**
- * A callback for finalize errors in D.  A FinalizeException will be thrown.
+ * A callback for finalize errors in D.  A FinalizeError will be thrown.
  *
  * Params:
  *  e = The exception thrown during finalization.
  *
  * Throws:
- *  FinalizeException.
+ *  FinalizeError.
  */
 extern (C) void onFinalizeError( ClassInfo info, Exception ex )
 {
-    throw new FinalizeException( info, ex );
+    throw new FinalizeError( info, ex );
 }
 
 
 /**
- * A callback for hidden function errors in D.  A HiddenFuncException will be
+ * A callback for hidden function errors in D.  A HiddenFuncError will be
  * thrown.
  *
  * Throws:
- *  HiddenFuncException.
+ *  HiddenFuncError.
  */
 extern (C) void onHiddenFuncError( Object o )
 {
-    throw new HiddenFuncException( o.classinfo );
+    throw new HiddenFuncError( o.classinfo );
 }
 
 
 /**
- * A callback for out of memory errors in D.  An OutOfMemoryException will be
+ * A callback for out of memory errors in D.  An OutOfMemoryError will be
  * thrown.
  *
  * Throws:
- *  OutOfMemoryException.
+ *  OutOfMemoryError.
  */
 extern (C) void onOutOfMemoryError()
 {
     // NOTE: Since an out of memory condition exists, no allocation must occur
     //       while generating this object.
-    throw cast(OutOfMemoryException) cast(void*) OutOfMemoryException.classinfo.init;
+    throw cast(OutOfMemoryError) cast(void*) OutOfMemoryError.classinfo.init;
 }
 
 
 /**
- * A callback for switch errors in D.  A SwitchException will be thrown.
+ * A callback for switch errors in D.  A SwitchError will be thrown.
  *
  * Params:
  *  file = The name of the file that signaled this error.
  *  line = The line number on which this error occurred.
  *
  * Throws:
- *  SwitchException.
+ *  SwitchError.
  */
 extern (C) void onSwitchError( string file, size_t line )
 {
-    throw new SwitchException( file, line );
+    throw new SwitchError( file, line );
 }
 
 
index 8bccd62f258a7c42784ee6b9c37ed70584f04172..29ac5ef580b5db037a557100cacd72764198c03a 100644 (file)
@@ -101,7 +101,7 @@ extern (C) bool rt_unloadLibrary(void* ptr)
  */
 extern (C) void onAssertError(string file, size_t line);
 extern (C) void onAssertErrorMsg(string file, size_t line, string msg);
-extern (C) void onArrayBoundsError(string file, size_t line);
+extern (C) void onRangeError(string file, size_t line);
 extern (C) void onHiddenFuncError(Object o);
 extern (C) void onSwitchError(string file, size_t line);
 extern (C) bool runModuleUnitTests();
@@ -124,7 +124,7 @@ extern (C) static void _d_assert_msg(string msg, string file, uint line)
 
 extern (C) void _d_array_bounds(string file, uint line)
 {
-    onArrayBoundsError(file, line);
+    onRangeError(file, line);
 }
 
 extern (C) void _d_switch_error(string file, uint line)