我正在尝试清空recycleBin。因此,我需要查询记录的现有SObjects
。如果找到记录SObject
的匹配项,则应该进行查询。否则,它不应该查询任何内容。返回类型是查询。
当SObject
不存在时,我应该如何编写else部分而不会出现崩溃问题。
我想到了一个try catch块,其中try部分将包含
if(exists){query;}
并且catch部分将什么都不做,这意味着它是空的。那有意义吗? 您会提出什么建议?
Boolean exists = Schema.getGlobalDescribe().containsKey(sObjectName);
try {
if(exists){
return Database.getQueryLocator('SELECT Id FROM ' + sObjectName
+' WHERE isDeleted=true ALL ROWS');
}
}
catch (QueryException ex) {
// do nothing
}
答案 0 :(得分:0)
假设您有一个将返回Database.getQueryLocator
public Database.QueryLocator testMethod(String sObjectName )
{
return Database.getQueryLocator('SELECT Id FROM ' + sObjectName
+' WHERE isDeleted=true ALL ROWS');
}
在调用方法之前检查sObject是否存在。
Boolean exists = Schema.getGlobalDescribe().containsKey(sObjectName);
if(exists)
{
Database.QueryLocator ql = testMethod(String sObjectName);
}