mysql - 如何验证数据源名称是否有效?

标签 mysql error-handling rust

我正在使用 OptsBuilder通过 data source name创建连接池:

let mut opts = mysql::OptsBuilder::from_opts(dsn);
opts.stmt_cache_size(0);
let pool = mysql::Pool::new_manual(1, 3, opts).expect("Could not connect to MySQL");

如果我传递了一个无效的 DSN,代码就会崩溃:

thread 'main' panicked at 'URL ParseError { relative URL without a base }', ', /path/.cargo/registry/src/github.com-1ecc6299db9ec823/mysql-16.0.2/src/conn/opts.rs:827:25

如何处理错误或提前验证以防止 panic ?

最佳答案

您可以使用 from_url 创建 Opts ,这样你就可以确定它不会在那之后失败:

let opts = match Opts::from_url(dsn) {
    Ok(opts) => opts,
    Err(e) => panic!(),// manage error
};
let mut opts = mysql::OptsBuilder::from_opts(opts);
opts.stmt_cache_size(0);
let pool = mysql::Pool::new_manual(1, 3, opts).expect("Could not connect to MySQL");

关于mysql - 如何验证数据源名称是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56869746/

相关文章:

php - 使用 PDO 对数组进行分页上限

mysql - 使值等于平均值

python - 如何使用更多信息记录 APScheduler 警告?

asp.net - 发生错误时在ASP.NET站点上重置IIS

rust - 为 Rust 中的特征提供类似继承的行为

rust - Rust 编译器在多大程度上自动匹配泛型约束?

mysql - SQL获取行中的列值

c - 运行时检查失败 #2 - 变量 'thread no' 周围的堆栈已损坏

rust - 从功能获得的mod中获取结构

php - 如何在php中将多个值插入到一个表中