Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
try errIo, errNet {
// ..........
} catch {
// ..........
}
try {
// ..........
} catch errIo, errNet {
// ..........
}
switch err {
case net.Error1:
doSomethingWithNetError()
case net.Error2:
doSomethingWithNetError()
case io.Error1:
doSomethingWithIoError()
case io.Error2:
doSomethingWithIoError()
}
try {
// ..........
} catch errNet {
// ..........
} catch errIo {
// ..........
}
как мне кажется, уж лучше использовать наработанные стереотипы от других языков
if err := client.Set("Fatal", " ", 0).Err(); err != nil {
log.Print(err)
}
client.Set(«Fatal», " ", 0).Err()
if rows, err := DB.Query("SELECT * FROM users WHERE login=?", login);err !=nil {
log.Fatal(err)
}
Вот это именно то к чему склоняют исключения
try { client.Set(«Fatal», " ", 0); } catch (Exception e) это антипаттерн, не надо их приводить в пример.Я не его приводил в пример, а просто написал эквивалентный вариант по Go коду.
Как мне писать в этом случае код работайщий со сторонним кодом, когда у меня одна функция возвращает error, а вторая исключения, stack trace будет формироваться в обоих случаях?
Go не даёт выбора.
try (Statement stmt = con.createStatement()) {
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
System.out.println(---);
}
} catch (SQLException e) {
JDBCTutorialUtilities.printSQLException(e);
}
Идея по обработке ошибок в Go