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
700
SwiftでのError Handlingを学び直す!
Swiftビギナーズ勉強会 第16回 2016/08/13
Yutaka
August 13, 2016
Tweet
Share
More Decks by Yutaka
See All by Yutaka
2018.01.19 すくすく子育てエンジニア Meetup #1
tajitaji
1
1.9k
mlmodel のコンパイル
tajitaji
0
1.4k
統計・マーケ・R/Python・機械学習 Meetup! #2 2017.10.11
tajitaji
0
160
Vapor プロジェクトの開発に使えそうなツールの紹介
tajitaji
0
380
Server Side Swift, Vapor を触ってみた
tajitaji
0
1.7k
Other Decks in Programming
See All in Programming
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
1.1k
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
340
Azure OpenAI Serviceのプロンプトエンジニアリング入門
tomokusaba
3
590
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
810
Front-end application development, Symfony-style(s)
dunglas
2
1.9k
ADRを一年運用してみた/adr_after_a_year
hanhan1978
7
2.3k
Site Reliability Engineering for GMO
pyama86
7
1k
新宿ダンジョンを可視化してみた
satoshi7190
2
170
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
160
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
670
使ってみよう Azure AI Document Intelligence
kosmosebi
2
260
データアナリストが行うDatabricksを活用したETLの自動化事例
shinoa
0
260
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
1
3.4k
GraphQLの誤解/rethinking-graphql
sonatard
50
9.2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.3k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
The MySQL Ecosystem @ GitHub 2015
samlambert
242
12k
Clear Off the Table
cherdarchuk
83
310k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
13
1.5k
Writing Fast Ruby
sferik
620
60k
Optimising Largest Contentful Paint
csswizardry
7
2.3k
Principles of Awesome APIs and How to Build Them.
keavy
120
16k
Happy Clients
brianwarren
91
6.4k
Art, The Web, and Tiny UX
lynnandtonic
288
19k
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