Pages

Monday 10 June 2019

'List has no rows for assignment to SObject' error

The following query is not returning any number of records:
"[SELECT Id FROM Account WHERE Id = :Trigger.new[0].Account__c]"
The error "List has no rows for assignment to SObject" occurs when the query doesn't return any rows.

Player__c player = [SELECT Id from Player__c where Name = :username];
if (player != null)
 p = player.Id;
The above code will fail if there is no Player__c record with the matching username. It doesn't actually return a null.

It would be safer to do the following:

Player__c[] players = [SELECT Id from Player__c where Name = :username];
if (players.size() > 0)
p = players[0].Id;
It’s one of those situations for which you would not normally think of creating a test, so it’s safer to just avoid the possibility.

No comments :

Post a Comment