[Tutor] Regarding Exceptions
Dave Angel
davea at davea.name
Mon Feb 17 14:53:08 CET 2014
On 02/17/2014 06:44 AM, Khalid Al-Ghamdi wrote:
> Hi,
>
> Why is it i can use mu custom class exception without creating an exception
> object first?
>
> Thanks
>
>
> 1. class ShortInputException(Exception): def __init__(self, length,
> atleast):
> 2. Exception.__init__(self)
> 3. self.length = length
> 4. self.atleast = atleast
> 5. try:
> 6. text = input() if len(text) < 3:
> 7. raise ShortInputException(len(text), 3) # Other work can continue as
> usual here
> 8. except EOFError:
> 9. print()
> 10. except ShortInputException as ex:
> 11. print(\
> 12. .format(ex.length, ex.atleast)) else:
> 13. print()
>
>
Your code posted here is totally broken. indentation is missing and
lines are illegally combined. And somehow you added colors and
incorrect line numbers besides.
Please post here in plain text, not html, and without line numbers,
colorizing or other nonsense.
Now to your question. I don't know what you mean "without creating an
exception object". You create one in the raise statement. It is
dubious however to raise an exception in any __init__ routine, since
that could perhaps mean that not all the intiialization has actually
happened. And it could lead to infinite recursion, if the exception is
the same class as you're initializing. I would also strenuously avoid
doing input() or other blocking operations in the __init__ routine, but
I'm not sure I know of any real reason why.
if this is real code, and not just an experiment, could you explain
(after formatting it in a text message so we can actually read it) just
what does happen, and what you expected/wished to happen?
(You might not see this message or my others for quite some time, as it
seems I've been dropped from the approved posters by having joined the
mailing list ???)
--
DaveA
More information about the Tutor
mailing list