gpt4 book ai didi

c# - 我怎样才能创建一个新的异常类并抛出它

转载 作者:行者123 更新时间:2023-11-30 16:13:47 25 4
gpt4 key购买 nike

在 C#.NET 中,我如何创建一个新的异常类并在运行时抛出它。我需要在运行时根据我收到的输入字符串生成异常类名。看来我应该使用 Reflection.emit,但我不知道该怎么做。

最佳答案

虽然我不明白使用反射发射创建异常类型的目的,但创建异常类型与创建任何其他类型没有什么不同:

// Build an assembly ...
var appDomain = Thread.GetDomain();
var assemblyName = new AssemblyName("MyAssembly");
var assemblyBuilder = appDomain.DefineDynamicAssembly(
assemblyName,
AssemblyBuilderAccess.Run
);

// ... with a module ...
var moduleBuilder = assemblyBuilder.DefineDynamicModule("MyModule");

// ... containing a class.
var typeBuilder = moduleBuilder.DefineType(
"MyException",
TypeAttributes.Class, // A class ...
typeof(Exception) // ... deriving from Exception
);
var exceptionType = typeBuilder.CreateType();

// Create and throw exception.
var exception = (Exception) Activator.CreateInstance(exceptionType);
throw exception;

关于c# - 我怎样才能创建一个新的异常类并抛出它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21252531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com