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
98
Swift 6 の地味な (?) アップデート
tajitaji
1
380
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
460
Server Side Swift, Vapor を触ってみた
tajitaji
0
1.9k
Other Decks in Programming
See All in Programming
インプロセスQAにおいて大事にしていること / In-process QA Meetup
medley
0
160
Cursorを活用したAIプログラミングについて 入門
rect
0
180
Improve my own Ruby
sisshiki1969
1
110
iOSアプリで測る!名古屋駅までの 方向と距離
ryunakayama
0
160
M5UnitUnified 最新動向 2025/05
gob
0
140
By the way Google Cloud Next 2025に行ってみてどうだった
ymd65536
0
120
ニーリーQAのこれまでとこれから
nealle
2
720
オープンソースコントリビュート入門
_katsuma
0
130
On-the-fly Suggestions of Rewriting Method Deprecations
ohbarye
3
5.2k
Embracing Ruby magic
vinistock
2
210
AIコーディングの理想と現実
tomohisa
36
39k
VibeCoding時代のエンジニアリング
daisuketakeda
0
140
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.7k
Done Done
chrislema
184
16k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
A better future with KSS
kneath
239
17k
Raft: Consensus for Rubyists
vanstee
137
6.9k
Building Applications with DynamoDB
mza
94
6.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
33k
How to train your dragon (web standard)
notwaldorf
91
6k
Building Adaptive Systems
keathley
41
2.5k
The World Runs on Bad Software
bkeepers
PRO
68
11k
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