Skip to content

Commit

Permalink
Remove fatal errors when unwrapping optionals
Browse files Browse the repository at this point in the history
If a request fails to return decodable data or an error, a catch all error is returned instead of a fatal error being raised.
  • Loading branch information
pranjalsatija committed Sep 10, 2017
1 parent 25251ca commit a756a25
Show file tree
Hide file tree
Showing 9 changed files with 15 additions and 85 deletions.
Binary file modified .DS_Store
Binary file not shown.
6 changes: 0 additions & 6 deletions ParseSwift.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
4A82B7F61F254CCE0063D731 /* Parse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A82B7EE1F254B820063D731 /* Parse.swift */; };
4A82B7F71F254CCE0063D731 /* ObjectType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A82B7EC1F254B820063D731 /* ObjectType.swift */; };
4A82B7F81F254CCE0063D731 /* Pointer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A82B7F11F254B820063D731 /* Pointer.swift */; };
4A82B7F91F254CCE0063D731 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A82B7F21F254B820063D731 /* Result.swift */; };
4A82B7FF1F256A8F0063D731 /* Query.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A82B7FE1F256A8F0063D731 /* Query.swift */; };
4A82B8011F256B330063D731 /* ObjectType+Query.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A82B8001F256B330063D731 /* ObjectType+Query.swift */; };
4A99A4691F2650CA00D72A59 /* ParseMutationContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A99A4681F2650CA00D72A59 /* ParseMutationContainer.swift */; };
Expand Down Expand Up @@ -53,7 +52,6 @@
4AFDA7341F26DAE1002AE4FC /* Pointer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A82B7F11F254B820063D731 /* Pointer.swift */; };
4AFDA7351F26DAE1002AE4FC /* Query.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A82B7FE1F256A8F0063D731 /* Query.swift */; };
4AFDA7361F26DAE1002AE4FC /* ObjectType+Query.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A82B8001F256B330063D731 /* ObjectType+Query.swift */; };
4AFDA7371F26DAE1002AE4FC /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A82B7F21F254B820063D731 /* Result.swift */; };
4AFDA7391F26DAF8002AE4FC /* Parse.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AB8B4F71F254AE10070F682 /* Parse.h */; settings = {ATTRIBUTES = (Public, ); }; };
AFA0808E1F65C72600D95158 /* Saving.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFA0808D1F65C72600D95158 /* Saving.swift */; };
AFA080901F65C73A00D95158 /* Fetching.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFA0808F1F65C73A00D95158 /* Fetching.swift */; };
Expand Down Expand Up @@ -87,7 +85,6 @@
4A82B7EE1F254B820063D731 /* Parse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Parse.swift; sourceTree = "<group>"; };
4A82B7F01F254B820063D731 /* File.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = File.swift; sourceTree = "<group>"; };
4A82B7F11F254B820063D731 /* Pointer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Pointer.swift; sourceTree = "<group>"; };
4A82B7F21F254B820063D731 /* Result.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Result.swift; sourceTree = "<group>"; };
4A82B7FE1F256A8F0063D731 /* Query.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Query.swift; sourceTree = "<group>"; };
4A82B8001F256B330063D731 /* ObjectType+Query.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ObjectType+Query.swift"; sourceTree = "<group>"; };
4A99A4681F2650CA00D72A59 /* ParseMutationContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseMutationContainer.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -234,7 +231,6 @@
4AC397761F4895A200DEA9D3 /* Object Protocols */,
4A82B7FD1F25691B0063D731 /* Types */,
AFA080951F65C86400D95158 /* Utilities */,
4A82B7F21F254B820063D731 /* Result.swift */,
4A2F149C1F4A604900A7A7EF /* Encoder */,
4A99A46A1F2650E200D72A59 /* Mutations */,
4AC397771F4895C000DEA9D3 /* REST */,
Expand Down Expand Up @@ -494,7 +490,6 @@
4A99A46E1F26512100D72A59 /* IncrementOperation.swift in Sources */,
4A82B8011F256B330063D731 /* ObjectType+Query.swift in Sources */,
4A82B7FF1F256A8F0063D731 /* Query.swift in Sources */,
4A82B7F91F254CCE0063D731 /* Result.swift in Sources */,
AFA080921F65C7B900D95158 /* ParseError.swift in Sources */,
4A2F14981F4A5F6900A7A7EF /* ObjectType+Batch.swift in Sources */,
4A82B7F41F254CCE0063D731 /* File.swift in Sources */,
Expand Down Expand Up @@ -525,7 +520,6 @@
4AFDA7301F26DAE1002AE4FC /* DeleteOperation.swift in Sources */,
4AFDA7361F26DAE1002AE4FC /* ObjectType+Query.swift in Sources */,
4AFDA7341F26DAE1002AE4FC /* Pointer.swift in Sources */,
4AFDA7371F26DAE1002AE4FC /* Result.swift in Sources */,
4AFDA72A1F26DAE1002AE4FC /* Parse.swift in Sources */,
4AFDA7351F26DAE1002AE4FC /* Query.swift in Sources */,
4A2F14921F4A434100A7A7EF /* Synchronous.swift in Sources */,
Expand Down
4 changes: 2 additions & 2 deletions Sources/ParseSwift/Object Protocols/ObjectType.swift
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ public extension ObjectType {
} else if let error = error {
callback?(nil, error)
} else {
fatalError()
callback?(nil, ParseError.unknownResult())
}
}
}
Expand All @@ -107,7 +107,7 @@ public extension ObjectType {
} else if let error = error {
callback?(nil, error)
} else {
fatalError()
callback?(nil, ParseError.unknownResult())
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions Sources/ParseSwift/Object Protocols/UserType.swift
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ extension UserType {
} else if let error = error {
callback?(nil, error)
} else {
fatalError()
callback?(nil, ParseError.unknownResult())
}
}
}
Expand Down Expand Up @@ -91,7 +91,7 @@ extension UserType {
} else if let error = error {
callback?(nil, error)
} else {
fatalError()
callback?(nil, ParseError.unknownResult())
}
}
}
Expand Down
70 changes: 0 additions & 70 deletions Sources/ParseSwift/Result.swift

This file was deleted.

2 changes: 1 addition & 1 deletion Sources/ParseSwift/Synchronous.swift
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ private func await<T>(block: (@escaping BlockCapturing<T>) -> Void) throws -> T
} else if let error = error {
throw error
} else {
fatalError()
throw ParseError.unknownResult()
}
}

Expand Down
2 changes: 1 addition & 1 deletion Sources/ParseSwift/Types/Pointer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ extension Pointer {
} else if let error = error {
callback(nil, error)
} else {
fatalError()
callback(nil, ParseError.unknownResult())
}
}
}
Expand Down
6 changes: 3 additions & 3 deletions Sources/ParseSwift/Types/Query.swift
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ extension Query: Querying {
} else if let error = error {
callback(nil, error)
} else {
fatalError()
callback(nil, ParseError.unknownResult())
}
}
}
Expand All @@ -228,7 +228,7 @@ extension Query: Querying {
} else if let error = error {
callback(nil, error)
} else {
fatalError()
callback(nil, ParseError.unknownResult())
}
}
}
Expand All @@ -248,7 +248,7 @@ extension Query: Querying {
} else if let error = error {
callback(nil, error)
} else {
fatalError()
callback(nil, ParseError.unknownResult())
}
}
}
Expand Down
6 changes: 6 additions & 0 deletions Sources/ParseSwift/Utilities/ParseError.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,9 @@ public struct ParseError: Error, Decodable {
let code: Int
let error: String
}

extension ParseError {
static func unknownResult() -> NSError {
return NSError(domain: "Neither data nor error was set.", code: -1, userInfo: nil)
}
}

0 comments on commit a756a25

Please sign in to comment.