File tree Expand file tree Collapse file tree 2 files changed +40
-1
lines changed
Expand file tree Collapse file tree 2 files changed +40
-1
lines changed Original file line number Diff line number Diff line change 11using System ;
22
3-
43namespace Python . Test
54{
65 //========================================================================
@@ -55,6 +54,25 @@ public static bool ThrowException()
5554 {
5655 throw new OverflowException ( "error" ) ;
5756 }
57+
58+ public static void ThrowChainedExceptions ( )
59+ {
60+ try
61+ {
62+ try
63+ {
64+ throw new Exception ( "Innermost exception" ) ;
65+ }
66+ catch ( Exception exc )
67+ {
68+ throw new Exception ( "Inner exception" , exc ) ;
69+ }
70+ }
71+ catch ( Exception exc2 )
72+ {
73+ throw new Exception ( "Outer exception" , exc2 ) ;
74+ }
75+ }
5876 }
5977
6078
Original file line number Diff line number Diff line change @@ -345,6 +345,27 @@ def testPicklingExceptions(self):
345345
346346 self .assertEqual (exc .args , loaded .args )
347347
348+ def testChainedExceptions (self ):
349+ if six .PY3 :
350+ from Python .Test import ExceptionTest
351+
352+ try :
353+ ExceptionTest .ThrowChainedExceptions ()
354+ except Exception as exc :
355+ msgs = [
356+ "Outer exception" ,
357+ "Inner exception" ,
358+ "Innermost exception"
359+ ]
360+
361+ for msg in msgs :
362+ self .assertEqual (exc .Message , msg )
363+ self .assertEqual (exc .__cause__ , exc .InnerException )
364+ exc = exc .__cause__
365+
366+ else :
367+ self .fail ("Test should raise an exception" )
368+
348369
349370def test_suite ():
350371 return unittest .makeSuite (ExceptionTests )
You can’t perform that action at this time.
0 commit comments