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}