Q&A
実現したいこと
SQLiteからnilのデータを取得した時のエラー処理を行いたい
発生している問題・エラーメッセージ
現在、SQLiteからデータを取得しているのですが、その中でnilとなってしまった時のエラー処理を解決したいのですが、次のコードではcatchブロックに入ってくれずに、そのまま★★★★★の行でクラッシュします。
Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value
該当のソースコード
Swift
1results.append([]) 2results[0].append(String(cString:sqlite3_column_text(stmt, 0))) 3do { 4 let test = try String(cString:sqlite3_column_text(stmt, 1)) //★★★★★エラー 5 } catch { 6 results[0].append("") 7}
試したこと
nil判定できれば何とかなると思うのですが、
SQLiteで取得しているデータだからだと思うのですが以下のようなコードでは上に書いたエラーが出てしまいます。
if String(cString:sqlite3_column_text(stmt, 1)) == nil {
}
nil判定できないのでdo-try-catchで対応したいと思うのですが、落ちることもなくそのままクラッシュしてしまうのですが、このような場合どうしたらcatchブロックに入れられるでしょうか?
ちなみに、黄色の警告が出てしまっています。
No calls to throwing functions occur within 'try' expression
(訳: 「try」式内でスロー関数の呼び出しが発生しない)
'catch' block is unreachable because no errors are thrown in 'do' block
(訳「do」ブロックでエラーがスローされないため、「catch」ブロックに到達できません)
こちらについてお分かりになられる方いらっしゃいましたらご教授ください。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。