Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Aspectj - обработка ошибок / 2 сообщений из 2, страница 1 из 1
05.09.2012, 17:05:54
    #37945185
dgroup
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Aspectj - обработка ошибок
Здраствуйте, можно ли с помощью Aspectj обработать ошибку в коде?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 ...
  class User {
        public static String getName(){
                return "Gendalf";
        }

        public static void getException() {
                throw new NullPointerException("okay :(");    
        } 
        
        public static int getYear(){
                return 10;
        } 
 }
  
 ....
 public static void main(String [] ar){
         System.out.println(User.getName);
         User.getException();
         System.out.println(User.getYear);
 } 


 ...




В аспекте кодом:
Код: java
1.
2.
3.
4.
5.
6.
after() throwing (NullPointerException e): target(User) && execution (void *.getNull*()){ 
		print("## TEST 4: catch and handle exception");
		print(e.getMessage());
		print("## TEST 4: closed all connection, save exception to logger, " +
				"and sent sms to developer.");
	}


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

Мой вариант "обработчика" :
Код: java
1.
2.
3.
4.
5.
6.
7.
  
pointcut nullPointerHandler(): within(User) && handler(NullPointerException) && (call (* User.*Exception()throws NullPointerException));
	after(): nullPointerHandler(){
		print("## TEST 6: handle NullPointerException");
		print("## place: " + thisJoinPoint.getSignature());
		print("## TEST 6: exception process.");
	}
...
Рейтинг: 0 / 0
06.09.2012, 08:16:21
    #37945871
mijer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Aspectj - обработка ошибок
Код: java
1.
2.
3.
4.
5.
6.
7.
void around(): nullPointerHandler() {
    try {
        proceed();
    } catch(NullPointerException e) {
        handleException(e);
    }
}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Aspectj - обработка ошибок / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]