我有一个函数来执行一些SQL命令,我已经创建了一个记录器,我在文件中写入了已执行的命令和受影响的行数,但我还需要写下可能引发OracleException的命令,所以我完成了以下代码:
public string ExecuteCommand(List<string> comandos)
{
var excepção = string.Empty;
var executar = new OracleCommand
{
Connection = Updater.OraConnection,
CommandType = CommandType.Text
};
try
{
Logg("Inicio da execução de comandos");
foreach (var variable in comandos)
{
excepção = variable;
executar.CommandText = variable;
throw new OracleException(0, "comando", "stuff", "adasds");
var Afectados = executar.ExecuteNonQuery();
Logg(variable);
Logg("Linhas afectadas: " + Afectados);
}
}
catch (OracleException)
{
Logg("Erros:");
Logg(excepção);
return excepção;
}
return excepção;
}我试着到处寻找,但我找不到合适的,甚至是有重点的答案,所以我有点迷失了,为什么我不能像这样提高oracleException:throw new OracleException(0, "comando", "stuff", "adasds");
它只是说,不能访问构造函数在这里,因为它的保护级别。任何帮助都会被拒绝。
发布于 2016-05-23 09:11:18
public class OracleException : Exception
{
}类需要将其作用域设置为公共或内部。构造函数不能作为其私有类访问。
发布于 2018-02-16 13:01:53
如果您只想模拟抛出的异常,并且不关心询问对象,那么。
private OracleResilienceManager CreateSut()
{
return new OracleResilienceManager(_resilienceSettings);
}
throw System.Runtime.Serialization.CreateSafeUninitializedProtectedType<OracleException>();在我的例子中,我正在测试重试策略,并希望在抛出此异常时测试重试逻辑。不需要访问对象本身。
https://stackoverflow.com/questions/37386911
复制相似问题