Чтобы убедиться, что скрипт продолжает работать, даже если есть ошибка, используйте блок try / except
.
В блоке except
, чтобы, как указано в вашем запросе, гарантировать, что код проверяет ошибку, снова и снова, вы будете использовать 'recursion функции', чтобы снова запустить функцию изнутри функции:
def periodic_task():
log.msg("periodic task running")
try:
x = 10 / 0 # include 'API calls' here
except: # include 'exception type'
periodic_task()
Хотя, есть много подводных камней с функцией рекурсии , так что будьте осторожны!
Arrays.asList
не может использоваться с массивами примитивов. Используйте это вместо этого:
Integer[] randomizer = new Integer[] {200,300,212,111,6,2332};
Collections.shuffle(Arrays.asList(randomizer));
То же правило относится к большинству классов в платформе наборов, в которой Вы не можете использовать типы примитивов.
Исходный код (с int[]
) скомпилированный штраф, но не работал, как предназначено, из-за поведения variadic метода asList
: это просто входит в список с одним элементом, с int
выстройте как его единственный участник.
Ответ Chris корректен.
Как я сказал в комментарии к ответу Chris, Ваш основной массив изменится соответственно, если arraylist не должен будет расти, и список создает новый и копирует объекты в него.
Можно хотеть сохранить ссылку на список и выполнить итерации по этому после вызова Arrays.asList, и не выполнить итерации по массиву после этого, выполнить итерации по Списку вместо этого.