Thomas Darimont
Erfahrenes Mitglied
Hallo,
in .Net gibts ja zumindest in C# / VB.Net keine Unterstützung für Checked Exceptions. Da nun aber gern Checked Exceptions in C# nutzen würde habe ich mir mal überlegt wie man sowas selber bauen könnte:
http://www.postsharp.org/community/forums/laos/325120299
Das witzige daran ist, dass ich gestern mal aus Spaß ein J# Programm im Reflector angeschaut habe...:
Aus:
Wird im Reflector:
... da lag ich mit meiner Idee also gar nicht sooooo daneben ;-)
Gruß Tom
in .Net gibts ja zumindest in C# / VB.Net keine Unterstützung für Checked Exceptions. Da nun aber gern Checked Exceptions in C# nutzen würde habe ich mir mal überlegt wie man sowas selber bauen könnte:
http://www.postsharp.org/community/forums/laos/325120299
Das witzige daran ist, dass ich gestern mal aus Spaß ein J# Programm im Reflector angeschaut habe...:
Aus:
Java:
package ConsoleApplication1;
/**
* Zusammenfassungsbeschreibung für das Programm
*/
public class Program
{
public static void main(String[] args)
{
//
// TODO: Code zum Starten der Anwendung hier hinzufügen
//
java.util.List list = new java.util.ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
System.out.println(list);
try{
operation1();
}catch(Throwable t){
t.printStackTrace();
}
operation2();
}
public static void operation1() throws Exception
{
throw new Exception();
}
public static void operation2()
{
throw new RuntimeException();
}
}
Wird im Reflector:
C#:
public class Program
{
// Methods
public static void main(string[] args)
{
RuntimeHelpers.RunClassConstructor(ObjectImpl);
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
System.@out.println(list);
try
{
operation1();
}
catch (Exception exception1)
{
ThrowableWrapper.wrapThrowable(exception1).printStackTrace();
}
operation2();
Utilities.cleanupAfterMainReturns();
}
[JavaThrownExceptions("1;java/lang/CloneNotSupportedException;"), JavaFlags(0x408005)]
public override object MemberwiseClone()
{
ObjectImpl.clone(this);
return base.MemberwiseClone();
}
[JavaThrownExceptions("1;java/lang/Exception;")]
public static void operation1()
{
throw new Exception();
}
public static void operation2()
{
throw new RuntimeException();
}
[JavaFlags(0x408001)]
public override string ToString()
{
return ObjectImpl.jloToString(this);
}
}
... da lag ich mit meiner Idee also gar nicht sooooo daneben ;-)
Gruß Tom