Как проверить правильность имени источника данных? - PullRequest
0 голосов
/ 03 июля 2019

Я использую OptsBuilder, передавая имя источника данных для создания пула соединений:

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

Как я могу обработать ошибку или проверить заранее, чтобы предотвратить панику?

1 Ответ

0 голосов
/ 03 июля 2019

Вы можете создать 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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...