我已经开始使用 cassandraemon(带有 C# 的 Apache Cassandra NoSQL),我只是想知道是否有任何方法可以读取从执行 CQL 查询中捕获的异常中的“为什么”值?
当我执行以下操作时:
try
{
CqlResult createResult = context.ExecuteCqlQuery(createTableCql);
}
catch (Exception exc)
{
if (exc.Why.Contains("already existing"))
{ // Why = org.apache.cassandra.exceptions.AlreadyExistsException: Cannot add already existing column family "nameOfColumn" to keyspace "nameOfKeyspace"
}
}
我无法以任何方式访问为什么在 exc 中。
我想要做的是检查表是否已经存在。我知道我可以像这里一样检查它(如何检查 Cassandra 表是否存在),但仅限于 CQL3。此链接中描述的方式也无济于事,因为我得到了为什么值“未配置的 columnfamily schema_columnfamilies”的其他异常。
我想知道如何阅读“为什么”的一般内容,因为将来我可能在其他情况下需要它。它不只是返回某种我可以检查的 CqlResult 值,它只是抛出一个异常。
如何在执行 CQL 查询时检查捕获的异常中“为什么”的值?
问候!
PS为了避免隐藏的交叉发布:https ://cassandraemon.codeplex.com/discussions/441028