Глупый вопрос, но я не могу понять как это реализовать лучше.
есть код в Email Listener который парсит файл, кверит записи, апдатирует.
На многих этапах есть проверки такого вида
if(что-то пошло не так) {
отправить письмо счастья админу;
остановить выполнение кода;
}
а как собственно его остановить-то?!
можно и так
if(все идет как надо) {
делаем то что нужно;
} else{
отправить письмо счастья админу;
}
но это будут бесконечные if обертки по всему коду
глупая история
Глупый вопрос, но я не могу понять как это реализовать лучше. есть код в Email Listener который парсит файл, кверит записи, апдатирует. На многих этапах есть проверки такого вида if(что-то пошло не так) { отправить письмо счастья админу; остановить выполнение кода; } а как собственно его остановить-то?! можно и так if(все идет как надо) { делаем то что нужно; } else{ отправить письмо счастья админу; } но это будут бесконечные if обертки по всему коду глупая история
return не помогает ?
[quote="Den Brown"]Глупый вопрос, но я не могу понять как это реализовать лучше. есть код в Email Listener который парсит файл, кверит записи, апдатирует. На многих этапах есть проверки такого вида if(что-то пошло не так) { отправить письмо счастья админу; остановить выполнение кода; } а как собственно его остановить-то?! можно и так if(все идет как надо) { делаем то что нужно; } else{ отправить письмо счастья админу; } но это будут бесконечные if обертки по всему коду глупая история[/quote] return не помогает ?
вроде помогает
я думал его только в методы (функции) можно ставить.
вот так работает
if (email.binaryAttachments.size()==0)
{
sendMail('Кажется вы забыли прикрепить файл к вашему письму'); // это небольшой метод для отправки письма счастья
return null; // а что еще кроме null вернуть? (и главное куда вернуть...)
}
вроде помогает :) я думал его только в методы (функции) можно ставить. вот так работает if (email.binaryAttachments.size()==0) { sendMail('Кажется вы забыли прикрепить файл к вашему письму'); // это небольшой метод для отправки письма счастья return null; // а что еще кроме null вернуть? (и главное куда вернуть...) }
Да, return - выход.
Да, return - выход. [quote]я думал его только в методы (функции) можно ставить.[/quote] В apex как и java все методы объектов. Даже если вроде код как сам по себе, то он обязательно используется в составе какого-то метода какого-то объекта неявно.
вот я так и подумал, что весь наш код в конечном счете станет методом внутри какого-то "глобального" класса..
[quote="Dmitry Shnyrev"] Даже если вроде код как сам по себе, то он обязательно используется в составе какого-то метода какого-то объекта неявно.[/quote] вот я так и подумал, что весь наш код в конечном счете станет методом внутри какого-то "глобального" класса..
.....
for(...){
if(....){
.......
break;
}
}
.......
Можно и так. Но лучше спланировать/спроектировать логику так, чтобы 'глупых историй' в if-else у тебя не было.
[code] ..... for(...){ if(....){ ....... break; } } ....... [/code] Можно и так. Но лучше спланировать/спроектировать логику так, чтобы 'глупых историй' в if-else у тебя не было.
[quote="Art Vegas"][code] ..... if(....){ ....... break; } ....... [/code] Можно и так. Но лучше спланировать/спроектировать логику так, чтобы 'глупых историй' в if-else у тебя не было.[/quote] Это только в цикле можно. Без цикла насколько я помню это компилятор не пропустит.
Да, верно...недосказал..
Без цикла...как говорилось выше - return
Да, верно...недосказал.. Без цикла...как говорилось выше - return
break - это первое что в голову приходило Но это команда только для циклов.
наверное return это самое правильное
break - это первое что в голову приходило :) Но это команда только для циклов. наверное return это самое правильное
внезапно появился вопрос:
а если есть трай-кетч, то в кетч тоже нужно ставить return null; чтобы прервать выполнение кода?
после трай-кетч там еще много кода...
catch(System.DMLException e) {
// to do something and
return null;
}
внезапно появился вопрос: а если есть трай-кетч, то в кетч тоже нужно ставить return null; чтобы прервать выполнение кода? после трай-кетч там еще много кода... catch(System.DMLException e) { // to do something and return null; }
да именно так!!!
да именно так!!!
вот так и бывает: вроде все уже знаешь, но как только начинается реальный кодинг - то возникают вопросы за вопросом.
Спасибо
вот так и бывает: вроде все уже знаешь, но как только начинается реальный кодинг - то возникают вопросы за вопросом. Спасибо