#30516: raise_last_exception doesn't work with exception types with different
__init__ signatures
-----------------------------------------+------------------------
               Reporter:  alantrick      |          Owner:  nobody
                   Type:  Uncategorized  |         Status:  new
              Component:  Uncategorized  |        Version:  2.2
               Severity:  Normal         |       Keywords:
           Triage Stage:  Unreviewed     |      Has patch:  0
    Needs documentation:  0              |    Needs tests:  0
Patch needs improvement:  0              |  Easy pickings:  0
                  UI/UX:  0              |
-----------------------------------------+------------------------
 How to reproduce:

 In apps.py, put the following code, and update __init__.py or the settings
 to have this app config be used.

 {{{
 from django.apps import AppConfig

 class MyException(Exception):
     def __init__(self, value: str, other_thing: str):
         super().__init__(value)
         self.ot = other_thing

 class Config(AppConfig):
     name = "myapp"
     verbose_name = "My App"

     def ready(self):
         raise MyException("foo", "bar")
 }}}

 The problem is that `django.utils.autoreload.raise_last_exception` tries
 to construct a new exception of the same type, with 1 argument (the
 original exception). Note that this behavior was changed in
 c8720e7696ca41f3262d5369365cc1bd72a216ca, it used to just re-raise the
 exception value. I don't know why it was changed.

 I noticed this issue as a result of https://gitlab.com/alantrick/django-
 vox/issues/9

-- 
Ticket URL: <https://code.djangoproject.com/ticket/30516>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/052.fa6db57a3af06d36d83b28cf37dd170b%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to