Show More
@@ -298,6 +298,13 b' except Exception:' | |||
|
298 | 298 | raise ValueError("Yikes") from None |
|
299 | 299 | """ |
|
300 | 300 | |
|
301 | SYS_EXIT_WITH_CONTEXT_CODE = """ | |
|
302 | try: | |
|
303 | 1/0 | |
|
304 | except Exception as e: | |
|
305 | raise SystemExit(1) | |
|
306 | """ | |
|
307 | ||
|
301 | 308 | def test_direct_cause_error(self): |
|
302 | 309 | with tt.AssertPrints(["KeyError", "NameError", "direct cause"]): |
|
303 | 310 | ip.run_cell(self.DIRECT_CAUSE_ERROR_CODE) |
@@ -306,6 +313,11 b' except Exception:' | |||
|
306 | 313 | with tt.AssertPrints(["KeyError", "NameError", "During handling"]): |
|
307 | 314 | ip.run_cell(self.EXCEPTION_DURING_HANDLING_CODE) |
|
308 | 315 | |
|
316 | def test_sysexit_while_handling_error(self): | |
|
317 | with tt.AssertPrints(["SystemExit", "to see the full traceback"]): | |
|
318 | with tt.AssertNotPrints(["another exception"], suppress=False): | |
|
319 | ip.run_cell(self.SYS_EXIT_WITH_CONTEXT_CODE) | |
|
320 | ||
|
309 | 321 | def test_suppress_exception_chaining(self): |
|
310 | 322 | with tt.AssertNotPrints("ZeroDivisionError"), \ |
|
311 | 323 | tt.AssertPrints("ValueError", suppress=False): |
@@ -552,6 +552,8 b' class ListTB(TBTools):' | |||
|
552 | 552 | lines = ''.join(self._format_exception_only(etype, evalue)) |
|
553 | 553 | out_list.append(lines) |
|
554 | 554 | |
|
555 | # Find chained exceptions if we have a traceback (not for exception-only mode) | |
|
556 | if etb is not None: | |
|
555 | 557 | exception = self.get_parts_of_chained_exception(evalue) |
|
556 | 558 | |
|
557 | 559 | if exception and (id(exception[1]) not in chained_exc_ids): |
@@ -573,7 +575,8 b' class ListTB(TBTools):' | |||
|
573 | 575 | context, |
|
574 | 576 | ) |
|
575 | 577 | + chained_exception_message |
|
576 |
+ out_list |
|
|
578 | + out_list | |
|
579 | ) | |
|
577 | 580 | |
|
578 | 581 | return out_list |
|
579 | 582 |
General Comments 0
You need to be logged in to leave comments.
Login now