【发布时间】:2019-12-31 12:21:33
【问题描述】:
我有一个与 MySQL 连接的简单 springboot 应用程序,MySQL 凭据存储在 application.properties 中。
如果数据库用户名/密码不正确,我想记录这个错误。
所以我在我的主课上做了一个 try-catch
try
{
SpringApplication.run( DashboardUtilServerApplication.class, args );
}
catch(Exception ex)
{
if(ex.getCause() instanceof HibernateException)
{
//Line 11
}
代码将出现在第 11 行,但我如何确定此异常是由于错误的数据库凭据导致的,错误的数据库凭据是否存在某些特定异常。
我只是想向用户表明数据库凭据不正确。如果在 application.properties 中 DB 的用户名/密码不正确。
【问题讨论】:
-
你可以使用SQLException的getMessage方法,它会给出类似'invalid username/password'
-
为mysql连接创建@Configuration类,并定义Datasource@Bean,捕获异常。 "java.sql.SQLSyntaxErrorException: 拒绝用户访问"
-
您使用的通用 catch 子句以及稍后的自省是灾难的根源。在尝试执行您想要实现的目标之前,最好的问题是为什么要通知应用程序的最终用户数据库凭据错误?这样的功能有什么用例?
标签: java spring-boot