我正在使用 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
如何处理错误或提前验证以防止出现恐慌?
最佳答案
您可以使用 Opts
创建from_url
,以确保在此之后它不会失败:
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/