2008-10-13 3 views
15

Есть ли способ сказать отладчику остановиться перед возвратом, в зависимости от того, какой из выходов выходит из метода, будь то возврат, исключение или выпадение дна? Меня вдохновляет тот факт, что редактор Java показывает мне все места, которые мой метод может вывести exit - он выделяет их, когда вы нажимаете на тип возвращаемого значения декларации метода, (Mark Occurrences enabled).eclipse beakpoint: остановка перед тем, как оставить Java-метод

[eclipse 3.4]

ответ

31

Положите точку останова на линию подписи метода. Вот где вы пишете

public void myMethod() { 

Затем щелкните правой кнопкой мыши точку останова и выберите «Свойства точки останова». В нижней части всплывающего окна есть два флажка: «Ввод метода», «Выход метода». Проверьте последний.

0

Хороший вопрос. С верхней части моей головы, я бы это сделать:

public void method(Object stuff) { 
    try { 
     /* normal code */ 
    } finally { 
     int x = 0; 
    } 
} 

Вы можете установить точку останова на х = 0 линия, и она всегда будет выполняться независимо от того, где вы вернетесь. Даже если исключение будет выброшено, оно будет запущено.

Уловка для этого - область. Если вы не определяете переменные за пределами блока try, вы не сможете увидеть их значения, когда вы дойдете до блока finally, так как они выйдут из области видимости.

Необходимо просто разместить 5 точек останова (по одному для каждого оператора возврата, что бы то ни было) может работать лучше всего.

Надеюсь, что есть лучший способ, я бы хотел это знать.

+0

Мне нравится этот ответ. Несмотря на то, что для этого требуется смена кода, он отладчик независим! – 2008-10-13 17:16:01

3

Вы можете установить контрольную точку метода.

Дважды нажмите на поле рядом с объявлением метода. Появляется точка останова с украшением стрелки. Щелкните правой кнопкой мыши, чтобы проверить свойства, вы можете установить «Приостановить на:» для «Ввод метода» и/или «Выход метода».

Подробнее о них вы можете узнать в Eclipse Cookbook.