У меня есть метод Apex, который получает запись учетной записи в качестве входных данных и возвращает запись учетной записи. Что делать, если произошла ошибка, и я хочу вернуть ее пользователю? Я не могу вернуть String, так как метод возвращает Account. Любые идеи ?

-1
Giorgos Galaios 19 Сен 2019 в 14:02
3
Похоже, что вы ищете понятие исключения, но нам нужно больше деталей, если вы хотите получить точный ответ. Вероятно, самая важная деталь здесь заключается в том, как пользователь в конечном итоге вызывает этот метод вершины? Вызывается ли он как часть триггера, страницы Visualforce или компонента молнии или чего-то еще?
 – 
Derek F
19 Сен 2019 в 14:14
Привет, Дерек, например: @AuraEnabled public static List matchService(Account acc) { try{//Some code here and return acc; } catch (Exception e){ return ('Произошло следующее исключение: ' + e.getMessage()) Я не могу сохранить этот метод, потому что не могу вернуть строку.
 – 
Giorgos Galaios
19 Сен 2019 в 15:36

1 ответ

Лучший ответ

Основываясь на вашем комментарии, вы ищете способ вернуть пользовательское сообщение об ошибке пользователю в вашем компоненте Lightning. Одним из решений может быть использование AuraHandledException в вашем контроллере Apex. Затем вы можете сгенерировать это исключение и передать строковый аргумент помощнику, который отобразит его пользователю.

Контроллер вершины:

@AuraEnabled public static List<String> matchingService(Account acc) {
    List<String> returnList = new List<String>();
    try {
    //perform some logic on returnList
    } catch (Exception ex) {
        throw new AuraHandledException('You cannot perform this action, error occured: ' + ex.getMessage);
    } 
    return returnList;

}

JS-помощник:

myFunction: function (component, account) {
        var action = component.get("c.matchingService");
        var account;

        action.setParams({
            "acc": account,
        });

        action.setCallback(this, function (response) {
            var state = response.getState();
            if (state === "SUCCESS") {
                var stringList = response.getReturnValue();
            } else {
                //errorMessage is the String argument of AuraHandledException
                var errorMessage = response.getError()[0].message;
                console.log('Error in matchingService : ' + errorMessage);

                //Handle error - for example show toast with message from Apex controller
                helper.showToast(component, errorMessage);
            }

        });
        $A.enqueueAction(action);
    }
0
UO Man 19 Сен 2019 в 16:31