Я сделал бы
StartDate1.IsBetween(StartDate2, EndDate2) || EndDate1.IsBetween(StartDate2, EndDate2)
, Где IsBetween
что-то как
public static bool IsBetween(this DateTime value, DateTime left, DateTime right) {
return (value > left && value < right) || (value < left && value > right);
}
К сожалению, нет. По крайней мере, не в основном Java API. Однако написать его легко - просто измените код ниже.
Если вы не перехватите исключение, то стек будет разматываться до тех пор, пока не достигнет блока перехвата, который его обработает, или он полностью раскрутится и остановит поток. Фактически, переменная не будет назначена, но это не совсем то, что вам нужно.
Может быть способ заставить CodePro игнорировать это конкретное предупреждение. Конечно, с помощью таких инструментов, как FindBugs и Checkstyle, вы можете отключить предупреждения в определенных местах. (РЕДАКТИРОВАТЬ: @Andy указала, как это сделать.)
Я подозреваю, что вам нужно что-то вроде пакета Commons lang, упомянутого @daveb. Довольно легко написать такую функцию:
int parseWithDefault(String s, int def) {
try {
return Integer.parseInt(s);
}
catch (NumberFormatException e) {
// It's OK to ignore "e" here because returning a default value is the documented behaviour on invalid input.
return def;
}
}