我已经开始使用cassandraemon(apache cassandra nosql with c#),我只是想知道是否有任何方法可以读取执行cql查询时捕获的异常中的“why”值?
当我执行以下操作时:
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中的why。
我要做的是检查表是否已经存在。我知道我可以像这里一样检查它(如何检查是否存在cassandra表),但是只有在cql3中。此链接中描述的方法也没有帮助,因为我遇到了另一个异常,why value“unconfigured columnfamine schema\u columnfamies”。
我想知道如何阅读“为什么”的内容,因为我可能需要在其他背景下在未来。它并不是简单地返回某种我可以检查的cqlresult值,它只是抛出一个异常。
如何检查执行cql查询时捕获的异常中的“why”值?
当做!
ps为了避免隐藏的交叉发布:https://cassandraemon.codeplex.com/discussions/441028
1条答案
按热度按时间m528fe3b1#
该错误告诉您要查找的表(也称为列族)不存在,但是
schema_columnfamilies
表应该始终存在,因此问题很可能是您没有指定表所在的模式(也称为keyspace)。此语句假定您已指定要使用
system
键空间:我认为您没有指定应该使用系统键空间,所以请尝试将此作为您的cql语句来验证表是否存在。