На этапе разработки мы часто ожидаем в какой-нибудь метод значения, которые соответсвуют каким-то ограничениям. При этом если прислать значение не подходящее под эти ограничения, то код не крешнется, а просто пойдут дальше искаженные исчисления.
Чтобы такого не допустить, то нам нужно писать проверку в таких методах и кидать исключение если-что.
Это в условиях спешной разработки утомительно, особенно если этот этап передачи строго внунтренний(который не соприкасается с внешним миром) и в условиях отлаженного приложения, в него будут приходитьс всегда подходящие данные. Поэтому жертвовать в таких условиях временем на написание исключений нет, тем более если в них нет нужды.
Тут приходят в помощь assertions(предположения), кототрые при влчюченных опциях java-ланчера будут ломать приложенение(выкидывать ошибки), что хорошо на этапах тестирования и разработки, помогая выявлять места, из которых приходят искаженные данные.
Expression1 -- это булиновское значение, а
Expression2 -- это метод, который вернет сообщение, или просто строка сообщения.
А вот длинный вариант записи:
Включение и выключение предположений:
Ланчер имеет две опции для влючения и выключения преположений(-ea и -da), эти опции имеют следующие аргументы:
Мы можем также включить предположения в системных классах:
Чтобы такого не допустить, то нам нужно писать проверку в таких методах и кидать исключение если-что.
Это в условиях спешной разработки утомительно, особенно если этот этап передачи строго внунтренний(который не соприкасается с внешним миром) и в условиях отлаженного приложения, в него будут приходитьс всегда подходящие данные. Поэтому жертвовать в таких условиях временем на написание исключений нет, тем более если в них нет нужды.
Тут приходят в помощь assertions(предположения), кототрые при влчюченных опциях java-ланчера будут ломать приложенение(выкидывать ошибки), что хорошо на этапах тестирования и разработки, помогая выявлять места, из которых приходят искаженные данные.
assert true; // приложение не сломается assert false; //приложение сломается assert (arg1!=0; arg2>5 && arg2<9); //а вот реальный пример применения
Этото вариант использования выражения просто завалит приложение без либо-каких сообщений. Если все же нужно выводить сообщение, то нужно пользоваться вот таким видом выражения:
assert Expression1:Expression2;Expression1 -- это булиновское значение, а
Expression2 -- это метод, который вернет сообщение, или просто строка сообщения.
А вот длинный вариант записи:
throw new AssertionError();
throw new AssertionError("Message");
Включение и выключение предположений:
Ланчер имеет две опции для влючения и выключения преположений(-ea и -da), эти опции имеют следующие аргументы:
- без аргументов
Вкл/выкл во всех классах, кроме системных - packageName
...
Вкл/выкл в пакете и в его подпакетах. ...
Вкл/выкл в классах находящихся в неименованном пакете -- те классы, которые находятся в поточном пакете.- className
Вкл/выкл в конкретном классе.
BatTutor, при этом предположения будут включены в пакете com.wombat.fruitbat и его подпакетах, а также в неименованном пакете:java -ea:com.wombat.fruitbat... BatTutor
А вот в этом примере мы сначала включаем предположения в пакете
com.wombat.fruitbat, а также в неименованном пакете, потом выключаем предположения в конкретном классе этого пакета.java -ea:com.wombat.fruitbat... -da:com.wombat.fruitbat.Brickbat BatTutor
Мы можем также включить предположения в системных классах:
java -esa -ea:com.wombat.fruitbat... BatTutor
Комментариев нет:
Отправить комментарий