Mercurial > cpython-lru_cache-weakref
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
