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
830
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SwiftでのError Handlingを学び直す!
Swiftビギナーズ勉強会 第16回 2016/08/13
Yutaka
August 13, 2016
More Decks by Yutaka
See All by Yutaka
SwiftUI で複数のアラート表示を管理する
tajitaji
0
140
Swift 6 の地味な (?) アップデート
tajitaji
1
440
2018.01.19 すくすく子育てエンジニア Meetup #1
tajitaji
1
2.2k
mlmodel のコンパイル
tajitaji
0
1.9k
統計・マーケ・R/Python・機械学習 Meetup! #2 2017.10.11
tajitaji
0
200
Vapor プロジェクトの開発に使えそうなツールの紹介
tajitaji
0
520
Server Side Swift, Vapor を触ってみた
tajitaji
0
2.1k
Other Decks in Programming
See All in Programming
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
120
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
600
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
130
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
170
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
140
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
750
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
230
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
670
MIZARU@SPAJAM2026 第二回予選
1901drama
0
110
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
120
信頼性の目標を誰も求めてない
shubox
0
490
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Statistics for Hackers
jakevdp
799
230k
Done Done
chrislema
186
16k
Visualization
eitanlees
152
17k
Docker and Python
trallard
47
4.2k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
440
How STYLIGHT went responsive
nonsquared
100
6.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Paper Plane
katiecoart
PRO
2
53k
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