diff Python/bltinmodule.c @ 463:c97f4c6ba6c6 legacy-trunk

Added new exceptions.
author Guido van Rossum <guido@python.org>
date Tue, 10 Dec 1991 13:52:31 +0000
parents 9cd38d1ac391
children c64c6702549d
line wrap: on
line diff
--- a/Python/bltinmodule.c	Tue Dec 10 13:51:08 1991 +0000
+++ b/Python/bltinmodule.c	Tue Dec 10 13:52:31 1991 +0000
@@ -66,7 +66,7 @@
 	}
 	x = getintvalue(v);
 	if (x < 0 || x >= 256) {
-		err_setstr(RuntimeError, "chr() arg not in range(256)");
+		err_setstr(ValueError, "chr() arg not in range(256)");
 		return NULL;
 	}
 	s[0] = x;
@@ -335,7 +335,7 @@
 	}
 	n = (*sq->sq_length)(v);
 	if (n == 0) {
-		err_setstr(RuntimeError, "min() or max() of empty sequence");
+		err_setstr(ValueError, "min() or max() of empty sequence");
 		return NULL;
 	}
 	w = (*sq->sq_item)(v, 0); /* Implies INCREF */
@@ -417,7 +417,7 @@
 		return NULL;
 	}
 	if (getstringsize(v) != 1) {
-		err_setstr(RuntimeError, "ord() arg must have length 1");
+		err_setstr(ValueError, "ord() arg must have length 1");
 		return NULL;
 	}
 	return newintobject((long)(getstringvalue(v)[0] & 0xff));
@@ -488,7 +488,7 @@
 			ilow = 0;
 	}
 	if (istep == 0) {
-		err_setstr(RuntimeError, "zero step for range()");
+		err_setstr(ValueError, "zero step for range()");
 		return NULL;
 	}
 	/* XXX ought to check overflow of subtraction */
@@ -594,6 +594,15 @@
 object *SystemError;
 object *KeyboardInterrupt;
 
+/* New exceptions */
+object *AttributeError;
+object *IOError;
+object *ZeroDivisionError;
+object *IndexError;
+object *ValueError;
+object *KeyError;
+object *OverflowError;
+
 static object *
 newstdexception(name, message)
 	char *name, *message;
@@ -615,6 +624,18 @@
 	SystemError = newstdexception("SystemError", "system error");
 	KeyboardInterrupt =
 		newstdexception("KeyboardInterrupt", "keyboard interrupt");
+	
+	/* New exceptions */
+	AttributeError =
+		newstdexception("AttributeError", "undefined attribute");
+	IOError = newstdexception("IOError", "I/O error");
+	ZeroDivisionError =
+		newstdexception("ZeroDivisionError", "division by zero");
+	IndexError = newstdexception("IndexError", "index out of range");
+	ValueError = newstdexception("ValueError", "unacceptable value");
+	KeyError = newstdexception("KeyError", "invalid key");
+	OverflowError =
+		newstdexception("OverflowError", "arithmetic overflow");
 }
 
 void