Mozilla 2/Exceptions: Difference between revisions
Jump to navigation
Jump to search
(→Status) |
|||
| Line 10: | Line 10: | ||
= Overview and Motivations = | = Overview and Motivations = | ||
The goal is to replace all <code>nsresult</code>-based error reporting and handling with C++ exceptions. | |||
The main benefit is that error-handing code will become simpler and more concise, making it easier to read and hack on Mozilla code. For example, <code>NS_ENSURE_RESULT</code> lines will disappear. Secondary benefits include: | |||
* Obviating [https://bugzilla.mozilla.org/show_bug.cgi?id=353144#c70 bug 353144], which is that <code>new</code> is already throwing exceptions, which are not being handled properly. | |||
* Enabling [[outparamdel]]. | |||
* Making it possible to propagate the same exception through both native code from C++ and JS runtimes, including Tamarin. | |||
* Possibly improving performance on the common case of no errors. | |||
= Risks and Assumptions = | = Risks and Assumptions = | ||
Revision as of 19:25, 23 January 2008
Owners
Dave Mandelin (dmandelin), with lots of advice from Taras Glek and Jonas Sicking.
Status
There is a technical discussion article under Exceptions.
There are too many outstanding issues to estimate a completion date.
Overview and Motivations
The goal is to replace all nsresult-based error reporting and handling with C++ exceptions.
The main benefit is that error-handing code will become simpler and more concise, making it easier to read and hack on Mozilla code. For example, NS_ENSURE_RESULT lines will disappear. Secondary benefits include:
- Obviating bug 353144, which is that
newis already throwing exceptions, which are not being handled properly.
- Enabling outparamdel.
- Making it possible to propagate the same exception through both native code from C++ and JS runtimes, including Tamarin.
- Possibly improving performance on the common case of no errors.
Risks and Assumptions
Describe any major assumptions or risks of the feature here.
Schedule and Milestones
Describe the rough schedule here.
References
links to external documents that could inform the design of the feature