Регистрация  |  Вход

как оборвать выполнение кода?

Глупый вопрос, но я не могу понять как это реализовать лучше.

есть код в Email Listener который парсит файл, кверит записи, апдатирует.

На многих этапах есть проверки такого вида

if(что-то пошло не так) {

отправить письмо счастья админу;

остановить выполнение кода;

}

а как собственно его остановить-то?!

можно и так

if(все идет как надо) {

делаем то что нужно;

} else{

отправить письмо счастья админу;

}

но это будут бесконечные if обертки по всему коду

глупая история

Глупый вопрос, но я не могу понять как это реализовать лучше.

есть код в Email Listener который парсит файл, кверит записи, апдатирует.

На многих этапах есть проверки такого вида

if(что-то пошло не так) {

отправить письмо счастья админу;

остановить выполнение кода;

}

а как собственно его остановить-то?!

можно и так

if(все идет как надо) {

делаем то что нужно;

} else{

отправить письмо счастья админу;

}

но это будут бесконечные if обертки по всему коду

глупая история

Den Brown
Глупый вопрос, но я не могу понять как это реализовать лучше.

есть код в 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 - выход.

я думал его только в методы (функции) можно ставить.

В apex как и java все методы объектов. Даже если вроде код как сам по себе, то он обязательно используется в составе какого-то метода какого-то объекта неявно.

Да, return - выход. 

[quote]я думал его только в методы (функции) можно ставить.[/quote]
В apex как и java все методы объектов. Даже если вроде код как сам по себе, то он обязательно используется в составе какого-то метода какого-то объекта неявно.

Dmitry Shnyrev
Даже если вроде код как сам по себе, то он обязательно используется в составе какого-то метода какого-то объекта неявно.

вот я так и подумал, что весь наш код в конечном счете станет методом внутри какого-то "глобального" класса..

[quote="Dmitry Shnyrev"]
Даже если вроде код как сам по себе, то он обязательно используется в составе какого-то метода какого-то объекта неявно.[/quote]

вот я так и подумал, что весь наш код  в конечном счете станет методом внутри какого-то "глобального" класса..

.....
for(...){
if(....){
.......
break;
}
}
.......

Можно и так. Но лучше спланировать/спроектировать логику так, чтобы 'глупых историй' в if-else у тебя не было.

[code]
.....
for(...){
if(....){
.......
break;
}
}
.......
[/code]

Можно и так. Но лучше спланировать/спроектировать логику так, чтобы 'глупых историй' в if-else у тебя не было.

Art Vegas
.....
if(....){
.......
break;
}
.......

Можно и так. Но лучше спланировать/спроектировать логику так, чтобы 'глупых историй' в 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; 
}

да именно так!!!

да именно так!!!

вот так и бывает: вроде все уже знаешь, но как только начинается реальный кодинг - то возникают вопросы за вопросом.
Спасибо

вот так и бывает: вроде все уже знаешь, но как только начинается реальный кодинг - то возникают вопросы за вопросом.
Спасибо