SObjectExceptionЛюбая проблема с записями sObject, например попытка изменить поле в операторе обновления, которое может быть изменено только во время вставки. Этот пример приводит к возникновению исключения SObjectException в блоке try, которое перехватывается в блоке catch. В примере запрашивает выписку по счету и выбирает только его поле Имя. Затем он пытается получить поле Description__c в запрошенном объекте sObject, которое недоступно, поскольку его нет в списке полей, запрошенных в инструкции SELECT. Это приводит к исключению SObjectException. Это исключение перехвачено в нашем блоке catch, и это то, что вы увидите в журнале отладки: Произошло следующее исключение: строка SObject была получена через SOQL без запроса запрошенного поля: Invoice_Statement__c.Description__c.
просмотреть исходный кодраспечатать?
01try
{
02 Invoice_Statement__c
inv = new
Invoice_Statement__c(
03 Description__c='New Invoice');
04 insert
inv;
05
06 // Query the invoice we just inserted
07 Invoice_Statement__c
v = [SELECT
Name FROM
Invoice_Statement__c
WHERE
Id = :inv.Id];
08 // Causes an SObjectException because we didn't retrieve
09 // the Description__c field.
10 String
s = v.Description__c;
11} catch(SObjectException se) {
12 System.debug('The following exception has occurred: '
+ se.getMessage());
13}