catch_expr
The tracking issue for this feature is: #31436
The catch_expr
feature adds support for a catch
expression. The catch
expression creates a new scope one can use the ?
operator in.
# #![allow(unused_variables)] #![feature(catch_expr)] #fn main() { use std::num::ParseIntError; let result: Result<i32, ParseIntError> = do catch { "1".parse::<i32>()? + "2".parse::<i32>()? + "3".parse::<i32>()? }; assert_eq!(result, Ok(6)); let result: Result<i32, ParseIntError> = do catch { "1".parse::<i32>()? + "foo".parse::<i32>()? + "3".parse::<i32>()? }; assert!(result.is_err()); #}