Используя цикл для итерации по jQuery одного элемента довольно неэффективно. При выборе идентификатора можно просто получить первый и уникальный элемент использования jQuery, добираются () или [] нотация.
var div = $("#thediv")[0];
// certain browsers have a bug such that scrollHeight is too small
// when content does not fill the client area of the element
var scrollHeight = Math.max(div.scrollHeight, div.clientHeight);
div.scrollTop = scrollHeight - div.clientHeight;
В первом случае метод ничего не возвращает после блока catch или внутри блока catch. .
Во втором случае блок catch генерирует исключение, чтобы компилятор знал, что метод вернет объект или выдаст исключение.
В первом случае, если возникает исключение, нет возвращаемого значения, функция просто отваливается от конца, что является ошибкой, например:
public String foo() {
int x = 5;
}
Во втором случае функция гарантированно вернуть значение или выбросить исключение.
Если вы действительно хотите зарегистрировать исключение, но не предпринимать никаких других действий как и в первом примере, вы можете написать что-то вроде:
public SqlMapClientTemplate getSqlTempl() throws UivException, SQLException{
SqlMapClientTemplate ret = null; //set a default value in case of error
try {
SqlMapClient scl = (SqlMapClient) ApplicationInitializer.getApplicationContext().getBean("MySqlMapClient");
DataSource dsc = (DataSource) ServiceLocator.getInstance().getDataSource(PIH_EIV_ORCL);
ret = new SqlMapClientTemplate (dsc, scl);
}
catch (NamingException ne)
{
log.error(ne.getMessage(), ne);
}
return ret;
}
Как упоминал Бхушан, компилятор может видеть в этом случае, что что-то всегда будет происходить там будет возврат или исключение. В вашем первом случае, если вы получите исключение именования, вы окажетесь в неоднозначном состоянии,