<div class="chatlog__message-group"> <div id="chatlog__message-container-1233768294113214524" class="chatlog__message-container" data-message-id="1233768294113214524"> <div class="chatlog__message"> <div class="chatlog__message-aside"><img class="chatlog__avatar" src="https://cdn.discordapp.com/avatars/293624673265123328/accd07acc220a18568ba46a6e9ede18a.png?size=512" alt="Avatar" loading="lazy"></div> <div class="chatlog__message-primary"> <div class="chatlog__header"><span class="chatlog__author" style="color:rgb(17,128,106)" title="koher" data-user-id="293624673265123328">koher</span> <a href="/channels/499393715140558881?category=コミュニティ&channel=swift-zoomin&message_id=1233768294113214524"><span class="chatlog__timestamp" title="Saturday, April 27, 2024 1:14 PM"></span></a><a href="#chatlog__message-container-1233768294113214524">4/27/2024 1:14 PM</a></div> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve"><code class="chatlog__markdown-pre chatlog__markdown-pre--multiline language-swift">// Manual propagation struct FooError: Error {} func foo(string: String) -> Result<Int, FooError> { guard let number = Int(string) else { return .failure(FooError()) } return .success(number) } let a: Result<Int, any Error> = .success(2) let b: Result<Int, any Error> = .failure(FooError()) let sum: Result<Int, any Error> = a.flatMap { a in b.map { b in a + b } } print(sum) // Automatic propagation //func foo(string: String) throws -> Int { // let a = try bar() // let b = try baz() // return a + b //} //do { // try inputStream.readLine() // // try inputStream.readLine() // try inputStream.readLine() // try inputStream.readLine() // //} catch { // // エラーハンドリング //} // do { try foo() bar() try baz() } catch { // エラーハンドリング }</code></span></div> </div> </div> </div> </div>