Мне нужно провести рефакторинг Java-программы, созданной с помощью Eclipse RCP.Мой предшественник передал реализацию ViewPart через несколько вызовов классу, для которого я хочу написать модульные тесты.ViewPart передается для обработки исключений.Каждый раз, когда возникает ошибка, сообщение об ошибке будет записано в StatusLineManager ViewPart.
Теперь я хочу изменить этот процесс обработки исключений , потому что он вызывает у меня много проблем.когда я хочу сделать свои юнит-тесты.
Есть ли способ передать эти исключения в ViewPart, не передавая его через несколько вызовов методов?
Мои первоначальные идеи по созданию какого-то ExceptionMessenger класса, который будетинициализироваться каждый раз, когда возникает исключение.Но тогда я не нашел способа доступа к ViewPart.
edit пример кода:
class A {
void func() {
B.funcB(arg, arg1, arg2, ViewPart view):
}
}
class B {
void funcB(arg, arg1, arg2, ViewPart view) {
C.funcC(arg, arg1, ViewPart view);
}
}
class C {
void funcC(arg, arg1, ViewPart view) {
try{
doSomeThing():
catch(Exception e) {
doSomeErrorMessages(e, view);
}
}
void doSomeErrorMessages(e, ViewPart view) {
SomeOtherClass.writeToStatusLine( StatusCategory.Processing, e.getMessage(), view);
}
}
class SomeOtherClass {
void writeToStatusLine(final StatusCategory category, final String message, final ViewPart view) {
IActionBars bars = view.getViewSite().getActionBars();
IStatusLineManager statusLineManagerRef = bars.getStatusLineManager();
statusLineManagerRef.setErrorMessage(null); // clear any error msg
doWhatEver();
}
}