|
|
|
как узнать был ли Exception
|
|||
|---|---|---|---|
|
#18+
Всем привет. Упрощённо задача выглядит так: в подпрограмме надо узнать не вызвана ли она из блока Exception Есть некий класс Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Есть главный класс Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Есть ли возможность в OuterClass в подпрограмме setCode узнать, вызван он из Exception или нет (например установив ls.setCode(1); исключения не будет) Есть идеи у кого-нибудь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 13:47 |
|
||
|
как узнать был ли Exception
|
|||
|---|---|---|---|
|
#18+
Не "блок Exception", а "блок catch". Задача сводиться к тому как можно ли узнать из одной строки был вызыван метод, или из другой. Да, можно, прочитав номер строки из стэка, если класс скомпилирован для отладки. Одно не понятно - а нафига. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 13:52 |
|
||
|
как узнать был ли Exception
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Не, по номеру строки не пойдёт. Есть очень много классов в которых используется OuterClass Во всех них такой код (упрощенно) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. OuterClass в setCode смотрит, если это ошибка Code(-1) то один алгоритм .... если это не ошибка Code(0), то другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 14:04 |
|
||
|
как узнать был ли Exception
|
|||
|---|---|---|---|
|
#18+
OldBoyOdeSu, так вот теперь ввели понятие логическая ошибка и это должно быть приравнено к Code(0); //not Error вот не хотелось бы всё переделывать, а в setCode определить как - то этот момент, если возможно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 14:06 |
|
||
|
как узнать был ли Exception
|
|||
|---|---|---|---|
|
#18+
OldBoyOdeSuтак вот теперь ввели понятие логическая ошибка и это должно быть приравнено к Code(0); //not Error вот не хотелось бы всё переделывать, а в setCode определить как - то этот момент, если возможно Этот кабздец надо сесть и нормально отрефакторить. Например так: Код: java 1. 2. 3. Боязнь рефакторинга не оправдывает кривизу решений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 14:14 |
|
||
|
как узнать был ли Exception
|
|||
|---|---|---|---|
|
#18+
Не, ну можно, конечно изобрести кучу обходных решений через посткомпиляций или инструментацию, чтобы хранить ссылку на последнее исключение в стэке. Но зачем это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 14:18 |
|
||
|
как узнать был ли Exception
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, не, не, по кривому нельзя, проект серьёзный... "надо сесть и нормально отрефакторить" да, вот походу к тому всё и идёт, просто думал может есть средство какое волшебное, про которое я не знаю, Java это не мой конёк. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 14:27 |
|
||
|
как узнать был ли Exception
|
|||
|---|---|---|---|
|
#18+
OldBoyOdeSuда, вот походу к тому всё и идёт, просто думал может есть средство какое волшебное, про которое я не знаю, Java это не мой конёк. Спасибо. Есть куча волшебных средств, но они здесь не нужны. Зачем усложнять решение простой задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 14:32 |
|
||
|
как узнать был ли Exception
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, "Зачем усложнять решение простой задачи?" Я определил самое узкое место, это setCode, если бы в нём можно было гарантированно и стандартно определить, вызван он из MyException|OtherException или других Exception, либо же ни каких Exception не было, то эта бы и была самая простая задача. А сейчас необходимо много классов перелопачивать, а ещё через полгода решат что ошибки эти всё таки не логические (надо это предусмотреть кстати будет...) Т.е. идея понятна, стандартно ни как не определить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 14:45 |
|
||
|
как узнать был ли Exception
|
|||
|---|---|---|---|
|
#18+
Замените setCode на setException - работы на несколько часов на крупном проекте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 14:50 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2127595]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
197ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 505ms |

| 0 / 0 |
