Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SwiftでのError Handlingを学び直す!
Search
Yutaka
August 13, 2016
Programming
3
780
SwiftでのError Handlingを学び直す!
Swiftビギナーズ勉強会 第16回 2016/08/13
Yutaka
August 13, 2016
Tweet
Share
More Decks by Yutaka
See All by Yutaka
SwiftUI で複数のアラート表示を管理する
tajitaji
0
99
Swift 6 の地味な (?) アップデート
tajitaji
1
390
2018.01.19 すくすく子育てエンジニア Meetup #1
tajitaji
1
2.1k
mlmodel のコンパイル
tajitaji
0
1.7k
統計・マーケ・R/Python・機械学習 Meetup! #2 2017.10.11
tajitaji
0
180
Vapor プロジェクトの開発に使えそうなツールの紹介
tajitaji
0
470
Server Side Swift, Vapor を触ってみた
tajitaji
0
1.9k
Other Decks in Programming
See All in Programming
GoのGenericsによるslice操作との付き合い方
syumai
2
660
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
830
Go1.25からのGOMAXPROCS
kuro_kurorrr
1
760
Select API from Kotlin Coroutine
jmatsu
1
180
Julia という言語について (FP in Julia « SIDE: F ») for 関数型まつり2025
antimon2
3
960
從零到一:搭建你的第一個 Observability 平台
blueswen
1
950
SODA - FACT BOOK
sodainc
1
1.1k
関数型まつりレポート for JuliaTokai #22
antimon2
0
130
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
41
27k
Go Modules: From Basics to Beyond / Go Modulesの基本とその先へ
kuro_kurorrr
0
120
Cursor Meetup Tokyo ゲノミクスとCursor: 進化と制約のあいだ
koido
2
1k
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
530
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Docker and Python
trallard
44
3.4k
We Have a Design System, Now What?
morganepeng
52
7.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Writing Fast Ruby
sferik
628
61k
Building an army of robots
kneath
306
45k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Adopting Sorbet at Scale
ufuk
77
9.4k
Raft: Consensus for Rubyists
vanstee
140
7k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
Transcript
SwiftでのError Handlingを 学び直す! Swiftビギナーズ勉強会 第16回 多鹿豊 1
目次 - 自己紹介 - Error Handlingとは? - SwiftでのError Handlingの書き方 -
Swift3.0に向けて 2
目次 - 自己紹介 - Error Handlingとは? - SwiftでのError Handlingの書き方 -
Swift3.0に向けて 3
自己紹介(personal) - 多鹿豊(タジカユタカ) - @taji-taji - Qiita, GitHub - Swift暦:9ヶ月半
4
- アプリ作ってます - 観葉植物が好き - 最近Vaporで遊んで ます 自己紹介(hobby) 5
自己紹介(works) - ウェルスタイル株式会社 - 家族限定SNS 「wellnote」を開発・運営 - iOSエンジニア - たまにPHP
- ごく稀にrails - 他、AWSとか 6
目次 - 自己紹介 - Error Handlingとは? - SwiftでのError Handlingの書き方 -
Swift3.0に向けて 7
Error Handlingとは? Error handling is the process of responding to
and recovering from error conditions in your program. 引用:The Swift Programming Language (Swift 2.2): Error Handling 8
Error Handlingとは? エラーが生じた際に、エラーの内容に応じて適 切にエラー状態を回復させる処理を行うこと →例外処理・Exception Handlingみたいなもの 9
目次 - 自己紹介 - Error Handlingとは? - SwiftでのError Handlingの書き方 -
Swift3.0に向けて 10
SwiftでのError Handlingの書き方 11
例:ポケモントレーナーがポケモンを捕まえる 12
例:ポケモントレーナーがポケモンを捕まえる 13 実際のゲームの挙動とは 異なるのでご了承ください m(_ _)m
成功失敗をBoolで返す 14
15 成功失敗をBoolで返す
16 成功失敗をBoolで返す - true or falseでしか処理を分けることが できない →falseの時の失敗の仕方によって処理を 分けたい
場合によって返す数値を変えてみる 17
場合によって返す数値を変えてみる 18
場合によって返す数値を変えてみる 19
場合によって返す数値を変えてみる 20 一応処理を分けることができた が、 -1 とか 1 とか、なんのこっちゃ分からない
もっと綺麗に書けますよ 21
エラーを定義 22
エラーを定義 - ErrorTypeプロトコルに準拠した列挙型でエ ラーを定義する 23
エラーを定義 - ErrorTypeプロトコル - エラーの値として扱われることを明示的に表す 24
エラーを投げる 25
throws, throw 26
throws, throw 27 関数名・メソッド名の()の後ろに書く ことで、エラーを投げる可能性があ ることを宣言。 必ずエラーを投げないといけない わけではない。
throws, throw 28 throwで定義したエ ラーを投げる
throws, throw 29
エラーを受け取って処理 30
31 エラーを受け取って処理
32 do-catch構文
33 try do ブロック内でエラーを投げる 可能性のあるメソッドを try で実 行する。
34 エラーの内容を それぞれ catch catch
いったんまとめ 35 • エラーを投げる可能 性のある関数・メソッ ド・Initializerはthrows をつけて定義 • throwでエラーを投げ る
列挙型でエラーの定義 • ハンドリングには do-catch構文を使用 • doブロックの中でtry • catchブロックでエ ラーをキャッチ
いったんまとめ 36 • エラーを投げる可能性の ある関数・メソッド ・Initializerはthrowsを つけて定義 • throwでエラーを投げる 列挙型でエラーの定義
• ハンドリングには do-catch構文を使用 • doブロックの中でtry • catchブロックでエ ラーをキャッチ
いったんまとめ 37 • エラーを投げる可能 性のある関数・メソッ ド・Initializerはthrows をつけて定義 • throwでエラーを投げ る
列挙型でエラーの定義 • ハンドリングには do-catch構文を使用 • doブロックの中でtry • catchブロックでエラーを キャッチ
目次 - 自己紹介 - Error Handlingとは? - SwiftでのError Handlingの書き方 -
Swift3.0に向けて 38
Swift3.0に向けて - ErrorType→ErrorProtocol - SE-0006 - 列挙型の値をlowerCamelCaseに - API Design
Guidelines 39
Swift3.0に向けて 40 Swift 2.2 Swift 3.0
今回触れなかった内容 - エラーの伝播 - try? - try! 41
ご清聴ありがとうございました 42