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 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