У меня есть проект с обработкой исключений, написанный следующим образом:Java: Обработчик исключений
Родительский класс имеет всю логику обработки исключений. И вызываемый класс просто генерирует исключение, а класс invoker обрабатывает соответствующую логику.
Теперь проблема, с которой я столкнулась при вызове класса, открывает разные вещи, например, файл. Эти файлы не закрываются во время исключения.
так что должно быть подходящим способом обработки исключений в этом случае.
class A
{
private void createAdminClient()
{
try
{
B b = new B();
b.getClinetHandler();
}
catch(CustomException1 e1)
{
}
catch(CustomException2 e1)
{
}
catch(CustomException3 e1)
{
}
catch(CustomException4 e1)
{
}
}
}
class B
{
................
................
getClinetHandler() throws Exception
{
--------------------------
---- open a file----------
--------------------------
----lines of code---------
--------------------------
Exceptions can happen in these lines of code.
And closing file may not be called
--------------------------
---- close those files----
--------------------------
}
}
Это не то, что они хотят. Закрываемые объекты не отображаются в этом кодовом блоке. – Sean
@Sean Я думаю, что это то, что они хотят, поскольку в конечном итоге они спрашивают, как закрыть файлы после выполнения (в методе 'getClientHandler'). Однако вы действительно указали на недостаток, поскольку переменная 'b' не видна, что я исправлю. –
Привет, Teeg, фрагмент кода, который я вставил, в основном родительский класс имеет всю логику обработки исключений. Если я выберу этот путь, в этом случае closeFiles и другая обработка логики обработки закрываемых объектов должны перейти к родительскому объекту, которого я не хочу. – Exploring