如何为测试目的引发 OracleException
How to raise an OracleException for test purposes
我有一个函数可以执行一些 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");
It just says that Cannot access constructor here due to its protection level.
Any help would be aprecciated
public class OracleException : Exception
{
}
class 需要将其范围设置为 public 或内部。无法访问构造函数,因为它是私有的 class.
如果你只是想模拟抛出的异常而不关心询问对象那么。
private OracleResilienceManager CreateSut()
{
return new OracleResilienceManager(_resilienceSettings);
}
throw System.Runtime.Serialization.CreateSafeUninitializedProtectedType<OracleException>();
在我的例子中,我正在测试一个重试策略,并想在抛出这个异常时测试重试逻辑。不需要访问对象本身。
我有一个函数可以执行一些 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");
It just says that Cannot access constructor here due to its protection level. Any help would be aprecciated
public class OracleException : Exception
{
}
class 需要将其范围设置为 public 或内部。无法访问构造函数,因为它是私有的 class.
如果你只是想模拟抛出的异常而不关心询问对象那么。
private OracleResilienceManager CreateSut()
{
return new OracleResilienceManager(_resilienceSettings);
}
throw System.Runtime.Serialization.CreateSafeUninitializedProtectedType<OracleException>();
在我的例子中,我正在测试一个重试策略,并想在抛出这个异常时测试重试逻辑。不需要访问对象本身。