поток 'main' запаниковал 'под названием `Result :: unwrap ()` для значения `Err`: UrlRequest (Error (Url (RelativeUrlWithoutBase)))', src \ libcore \ result.rs: 1165: 5 - PullRequest
1 голос
/ 29 марта 2020

Я пытаюсь читать из RSS-канала.

use rss::Channel;

fn main() {
    let channel = Channel::from_url("adaderana.lk/rss.php").unwrap().to_string();

    println!("{}", channel);
}

, и я получил это сообщение об ошибке:

 Running `target\debug\news_scrapper.exe` thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: UrlRequest(Error(Url(RelativeUrlWithoutBase)))', src\libcore\result.rs:1165:5 stack backtrace:    0: core::fmt::write
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libcore\fmt\mod.rs:1028 1: std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\io\mod.rs:1412 2: std::sys_common::backtrace::_print
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\sys_common\backtrace.rs:65 3: std::sys_common::backtrace::print
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\sys_common\backtrace.rs:50 4: std::panicking::default_hook::{{closure}}
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:188 5: std::panicking::default_hook
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:205 6: std::panicking::rust_panic_with_hook
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:464 7: std::panicking::continue_panic_fmt
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:373 8: std::panicking::rust_begin_panic
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\panicking.rs:302 9: core::panicking::panic_fmt
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libcore\panicking.rs:139 10: core::result::unwrap_failed
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libcore\result.rs:1165 11: core::result::Result<rss::channel::Channel, rss::error::Error>::unwrap<rss::channel::Channel,rss::error::Error>
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\src\libcore\result.rs:933 12: news_scrapper::main
    at .\src\main.rs:4   13: std::rt::lang_start::{{closure}}<()>
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\src\libstd\rt.rs:61   14: std::rt::lang_start_internal::{{closure}}::{{closure}}
    at /rustc/73528e339aae0f17a15ffa49a8ac608f50c6cf14\/src\libstd\rt.rs:48 note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. error: process didn't exit successfully: `target\debug\news_scrapper.exe` (exit code: 101)

Я был бы очень благодарен, если бы кто-нибудь мог мне помочь.

1 Ответ

2 голосов
/ 29 марта 2020

Соответствующей частью ошибки является первая строка:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: UrlRequest(Error(Url(RelativeUrlWithoutBase)))

Ошибка Error(Url(RelativeUrlWithoutBase)) должна быть ключом к пониманию проблемы.

Вам необходимо передать полный URL к Channel::from_url.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...