Допустим, у вас есть функция (X
), которая берет один объект и выполняет с ним некоторую работу. Это может как-то не сработать:
function X(obj) throws SomeException
И у меня есть коллекция этих объектов, и я хочу запустить X
на всех них. Поэтому я обернул это в свою собственную функцию:
function Y(objs)
foreach obj in objs
X(obj)
end
end
Каков наилучший способ обработки исключений, возвращаемых X
?
Один очевидный выбор - вообще не перехватывать исключение, что приводит к остановке обработки коллекции при первом сбое.
Другой вариант - перехватывать каждое исключение и сохранять его в стороне. В конце концов, вы можете создать новое исключение, если оно вообще было. При желании вы можете включить эти исключения в качестве вложенных исключений нового исключения.
Другой вариант - полностью игнорировать исключение, возвращая что-то вроде логического массива, отмечающего успех / неудачу, или даже возвращать массив возникших исключений.