Rust의 Try-Catch 문과 동일

Muhammad Adil 2022년6월21일
Rust의 Try-Catch 문과 동일

Rust는 더 안전하고 안정적인 소프트웨어 개발 방법을 제공하는 프로그래밍 언어입니다. 다른 언어의 보안 취약점으로 이어지는 일반적인 오류를 방지하도록 설계되었습니다.

Rust 언어는 예외 처리를 지원하지 않습니다. 즉, Rust에는 try-catch 문이 없습니다.

Rust에서 예외 처리가 없기 때문에 함수에서 예외가 발생하여 런타임 오류가 발생할 가능성이 없습니다. 이는 프로그램이 계속되는 대신 오류가 발생한 지점에서 중지되고 코드베이스에서 다른 문제를 일으킬 수 있기 때문입니다.

이 기사는 try-catch 문에 해당하는 Rust에 대해 설명합니다.

Rust의 try-catch 문과 동일

try-catch 문에 대해 Rust에서 사용할 수 있는 동등한 항목이 많이 있습니다. 그러나 이 기사에서는 가장 근접한 몇 가지만 논의할 것입니다.

사용 ? Rust의 연산자

Rust에서는 ?를 사용할 수 있습니다. 연산자는 값을 반환하거나 반환하지 않습니다.

? operator는 Rust의 필수 기능 중 하나이며 다양한 방법으로 사용할 수 있습니다. 값이 있는지, 값이 변수에 할당되었는지 또는 표현식이 true 또는 false로 평가되는지 확인할 수 있습니다.

? operator는 또한 Rust의 try-catch 문에 대한 대안으로 사용될 수 있습니다. ? 연산자는 클로저를 매개변수로 사용합니다.

그러면 실행 중에 오류가 발생하면 어떤 일이 일어날지 걱정하지 않고 클로저를 호출할 수 있습니다.

? 연산자는 오류를 포착하고 오류가 없으면 클로저 값을 반환하거나 오류가 있는 경우 무엇이 잘못되었는지에 대한 설명과 함께 오류 유형을 반환합니다.

예시:

fn main() {
    let hello_tasks = || -> Result<(), HelloError> {
        hello_task_1()?;
        hello_task_2()?;
        hello_task_3()?;
        Ok(())
    };
    if let Err(_err) = hello_tasks() {
        println!("There's an error in your code, please correct it");
    }
}
enum HelloError {
    HelloTask1Error,
    HelloTask2Error,
    HelloTask3Error,
}
fn hello_task_1() -> Result<(), HelloError> {
    println!("Task No 1");
    Ok(())
}
fn hello_task_2() -> Result<(), HelloError> {
    println!("Task No 2");
    Err(HelloError::HelloTask2Error)
}
fn hello_task_3() -> Result<(), HelloError> {
    println!("task3");
    Ok(())
}

출력:

Task No 1
Task No 2
There's an error in your code, please correct it

여기를 클릭 위에서 언급한 코드의 라이브 데모를 확인하십시오.

Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook