Size: a a a

2020 July 06

AK

Alexander Komarov in pro.jvm
Mikhail
Ребята, какой вариант предпочтительней?
третий
источник

AS

Aleksey Shipilev in pro.jvm
Конечно, эта лыжа переписывается на перехват специфичных исключений:
try {
  ...
} catch (ConcreteException1 ex1) {
  return condition ? 1 : 2;
} catch (Exception ex) {
  return condition ? 1 : 3;
}
источник

AK

Alexander Komarov in pro.jvm
Aleksey Shipilev
Конечно, эта лыжа переписывается на перехват специфичных исключений:
try {
  ...
} catch (ConcreteException1 ex1) {
  return condition ? 1 : 2;
} catch (Exception ex) {
  return condition ? 1 : 3;
}
это если оставить за скобками что try-catch-driven-development - это очень такое себе. я бы подумал нужно ли вообще в блок try-catch хоть какую-то логику пихать
источник

SS

Shamil Sabirov in pro.jvm
Aleksey Shipilev
Конечно, эта лыжа переписывается на перехват специфичных исключений:
try {
  ...
} catch (ConcreteException1 ex1) {
  return condition ? 1 : 2;
} catch (Exception ex) {
  return condition ? 1 : 3;
}
мне кажется это будет иметь смысл, если обратно в С/С++ нужно код ошибки возвращать. а иначе - зачем?
источник

M

Mikhail in pro.jvm
прилетает эксепшн после запроса в сеть и мне нужно обработать его в зависимости от урла запроса
источник

M

Mikhail in pro.jvm
Aleksey Shipilev
Конечно, эта лыжа переписывается на перехват специфичных исключений:
try {
  ...
} catch (ConcreteException1 ex1) {
  return condition ? 1 : 2;
} catch (Exception ex) {
  return condition ? 1 : 3;
}
будет куча кэтч блоков и придется в каждый пихать проверку условия
источник

AS

Aleksey Shipilev in pro.jvm
Я бы глубину ветвлений оптимизировал, если честно. Но ладно, выбирая между двумя вашими вариантами, я бы точно не бросал исключение ещё раз (зачем?!)
источник

ch

central hardware in pro.jvm
мимо, читаем правила
источник

AK

Alexander Komarov in pro.jvm
источник

M

Mikhail in pro.jvm
Aleksey Shipilev
Я бы глубину ветвлений оптимизировал, если честно. Но ладно, выбирая между двумя вашими вариантами, я бы точно не бросал исключение ещё раз (зачем?!)
спасибо,я выбрал первый вариант, но sonar lint требует instanceof заменить на catch блоки
источник

RG

Rinchin G in pro.jvm
Люди очень прошу - помогите. Я не знаю что читать про тесты. Добавил в проект bean который создает таблицы в БД с помощью DatabasePopulator.
@Bean
public BalancedClickhouseDataSource clickHouseDataSource() {
 ClickHouseConfig clickHouseConfig = new ClickHouseConfig(environment);
 BalancedClickhouseDataSource dataSource = clickHouseConfig.configure();
 DatabasePopulatorUtils.
execute(createDatabasePopulator(), dataSource);
 return dataSource;
}

Теперь даже самый простой тест

@Test
public void testTest(){
 
assertEquals(2,2);
}


падает что не может установить соединение с БД. Но я хочу писать не интеграционные тесты а юнит тесты (без базы)
источник

AS

Aleksey Shipilev in pro.jvm
Mikhail
спасибо,я выбрал первый вариант, но sonar lint требует instanceof заменить на catch блоки
Ну так он это делает по той же причине, почему и я руками переписал: если есть instanceof против специфичного исключения, то его хочется отнести в специфичный catch-блок. В _существующий_ try-catch-блок, а не перебрасывать исключение опять...
источник

AH

Anton 🇷🇺 Homyakin... in pro.jvm
Rinchin G
Люди очень прошу - помогите. Я не знаю что читать про тесты. Добавил в проект bean который создает таблицы в БД с помощью DatabasePopulator.
@Bean
public BalancedClickhouseDataSource clickHouseDataSource() {
 ClickHouseConfig clickHouseConfig = new ClickHouseConfig(environment);
 BalancedClickhouseDataSource dataSource = clickHouseConfig.configure();
 DatabasePopulatorUtils.
execute(createDatabasePopulator(), dataSource);
 return dataSource;
}

Теперь даже самый простой тест

@Test
public void testTest(){
 
assertEquals(2,2);
}


падает что не может установить соединение с БД. Но я хочу писать не интеграционные тесты а юнит тесты (без базы)
тебе нужно запускать тесты без поднятия контекста
источник

C

Cargeh in pro.jvm
Rinchin G
Люди очень прошу - помогите. Я не знаю что читать про тесты. Добавил в проект bean который создает таблицы в БД с помощью DatabasePopulator.
@Bean
public BalancedClickhouseDataSource clickHouseDataSource() {
 ClickHouseConfig clickHouseConfig = new ClickHouseConfig(environment);
 BalancedClickhouseDataSource dataSource = clickHouseConfig.configure();
 DatabasePopulatorUtils.
execute(createDatabasePopulator(), dataSource);
 return dataSource;
}

Теперь даже самый простой тест

@Test
public void testTest(){
 
assertEquals(2,2);
}


падает что не может установить соединение с БД. Но я хочу писать не интеграционные тесты а юнит тесты (без базы)
мне кажется это лучше в @javastart, имхо
источник

C

Cargeh in pro.jvm
но да, либо контекст не поднимать, либо профилями разделять, смотря какая у тебя цель и что ты делаешь вообще
источник

かたかわ in pro.jvm
Rinchin G
Люди очень прошу - помогите. Я не знаю что читать про тесты. Добавил в проект bean который создает таблицы в БД с помощью DatabasePopulator.
@Bean
public BalancedClickhouseDataSource clickHouseDataSource() {
 ClickHouseConfig clickHouseConfig = new ClickHouseConfig(environment);
 BalancedClickhouseDataSource dataSource = clickHouseConfig.configure();
 DatabasePopulatorUtils.
execute(createDatabasePopulator(), dataSource);
 return dataSource;
}

Теперь даже самый простой тест

@Test
public void testTest(){
 
assertEquals(2,2);
}


падает что не может установить соединение с БД. Но я хочу писать не интеграционные тесты а юнит тесты (без базы)
мокай
источник

かたかわ in pro.jvm
👌
источник

かたかわ in pro.jvm
а, стоп, это какой-то странный юнит тест, где ты аж таблицы в ДБ создаёшь...
источник

RG

Rinchin G in pro.jvm
かたかわ
а, стоп, это какой-то странный юнит тест, где ты аж таблицы в ДБ создаёшь...
Тесты были на логику. База ни при чем.
источник

C

Cargeh in pro.jvm
かたかわ
а, стоп, это какой-то странный юнит тест, где ты аж таблицы в ДБ создаёшь...
ну и это тоже. заполнять базу в бине создания датасорса как-то странно... но он в чистых юнит тестах все равно не нужен
источник