﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
30516	raise_last_exception doesn't work with exception types with different __init__ signatures	Alan Trick	nobody	"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). The consequence is that you just get a TypeError exception about ` __init__() missing 1 required positional argument: 'other_thing'` and it completely masks 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"	Uncategorized	new	Uncategorized	2.2	Normal				Unreviewed	0	0	0	0	0	0
