IronLanguages / IronLanguages/ironpython3
Feature: Unify `System.Exception` with `BaseException`
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 2.8k
- Forks
- 316
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 1
Description
[!NOTE]
This issue is the perfect opportunity to demonstrate the new issue templates introduced in #1812!
📄 Description
Currently, raising a .NET exception that derives from System.Exception using the raise keyword results in the following error: TypeError: exceptions must derive from BaseException.
The IronPython compiler should allow exceptions from .NET classes to be raised using Python's built in raise function.
🗃️ Alternative solutions
- Replace
BaseExceptionentirely withSystem.Exception(best) - Allow
BaseExceptionandSystem.Exceptionto co-exist as different types of exceptions
👥 Intended Use-Case
This would allow for better use of the existing CLR exception types.
📸 Assets
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the raise keyword and built-in raise path, then inspect how raised values are validated against BaseException and System.Exception. Done means CLR exception types deriving from System.Exception can be raised without the reported TypeError, with the chosen relationship between the two exception types documented by tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, python
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100