82 lines
1.9 KiB
Plaintext
82 lines
1.9 KiB
Plaintext
.assembly 'exception' { }
|
|
.assembly extern 'mscorlib' {
|
|
.ver 1:0:5000:0
|
|
.publickeytoken = ( b7 7a 5c 56 19 34 e0 89 )
|
|
}
|
|
.class 'test'
|
|
extends [mscorlib]System.Object
|
|
{
|
|
.method hidebysig static private void 'F'() {
|
|
.try {
|
|
.try {
|
|
call void 'test'::'G'()
|
|
leave $3
|
|
}
|
|
catch [mscorlib]System.Exception {
|
|
.locals init ([0]class [mscorlib]System.Exception 'e')
|
|
stloc 0 // e
|
|
ldstr "Exception in F: "
|
|
ldloc 0 // e
|
|
callvirt instance string [mscorlib]System.Exception::'get_Message'()
|
|
call string [mscorlib]System.String::'Concat'(object,object)
|
|
call void [mscorlib]System.Console::'WriteLine'(string)
|
|
ldstr "F"
|
|
newobj instance void [mscorlib]System.Exception::.ctor(string)
|
|
stloc 0 // e
|
|
ldloc 0 // e
|
|
throw
|
|
leave $3
|
|
}
|
|
catch [mscorlib]System.Object {
|
|
pop
|
|
leave $3
|
|
} // end .try
|
|
$3:
|
|
leave $2
|
|
}
|
|
finally {
|
|
ldstr "F finally block"
|
|
call void [mscorlib]System.Console::'WriteLine'(string)
|
|
endfinally
|
|
} // end .try
|
|
$2:
|
|
$1:
|
|
ret
|
|
.maxstack 2
|
|
} // end of method test.F
|
|
.method hidebysig static private void 'G'() {
|
|
ldstr "G"
|
|
newobj instance void [mscorlib]System.Exception::.ctor(string)
|
|
throw
|
|
ret
|
|
.maxstack 2
|
|
} // end of method test.G
|
|
.method hidebysig public static void 'Main'() {
|
|
.entrypoint
|
|
.try {
|
|
call void 'test'::'F'()
|
|
leave $2
|
|
}
|
|
catch [mscorlib]System.Exception {
|
|
.locals init ([0]class [mscorlib]System.Exception 'e')
|
|
stloc 0 // e
|
|
ldstr "Exception in Main: "
|
|
ldloc 0 // e
|
|
callvirt instance string [mscorlib]System.Exception::'get_Message'()
|
|
call string [mscorlib]System.String::'Concat'(object,object)
|
|
call void [mscorlib]System.Console::'WriteLine'(string)
|
|
leave $2
|
|
} // end .try
|
|
$2:
|
|
$1:
|
|
ret
|
|
.maxstack 2
|
|
} // end of method test.Main
|
|
.method hidebysig specialname rtspecialname public void .ctor() {
|
|
ldarg.0
|
|
call instance void [mscorlib]System.Object::.ctor()
|
|
ret
|
|
.maxstack 1
|
|
} // end of constructor test.test
|
|
} // end of class test
|