Nhanh chóng, có thể sử dụng ngắn hơn guard let try?
và có ngoại lệ xảy ra nếu nhập khối khác không?Có thể truy xuất ngoại lệ trong câu lệnh bảo vệ bằng "try?" Không?
guard let smth = try? myThrowingFunc() else {
print(error) //can I access the exception here somehow?
return
}
vs
let smth: AnyObject?
do {
smth = try myThrowingFunc()
} catch let error {
print(error)
return
}
Tôi khá chắc chắn rằng thử? là như thế nào? và sẽ chỉ chuyển smh thành enum tùy chọn, nơi bạn còn lại để unwrap/xác nhận nó theo yêu cầu. có nghĩa là, tôi nghĩ rằng nó lấy ra khỏi mô hình do/catch –
Có, và 'guard let smth = ...' cố gắng unwrap - nếu nó thất bại, sau đó nó sẽ thực thi khối khác. Vì vậy, cấu trúc này có thể là tuyệt vời, nếu nó sẽ có thể bằng cách nào đó truy cập ngoại lệ ... – smat88dd
Nhưng cảm ơn, tôi có thể hiểu cách nó hoạt động và trả lời câu hỏi của tôi bản thân mình! – smat88dd