Pythonで文字列のエラーハンドリングと例外処理をマスターする

この記事では、Pythonで文字列を扱う際によく遭遇するエラーとその対処法について詳しく解説します。具体的なコード例、その詳細な解説、さらには応用例まで網羅的にご紹介します。

目次

文字列処理の基礎

Pythonで文字列を扱う場合、基本的な操作は非常に簡単です。しかし、高度な操作や複数のデータソースから取得した文字列を扱う場面では、エラーが発生しやすくなります。

よくあるエラーの例

1. UnicodeDecodeError:エンコーディングの問題
2. AttributeError:strオブジェクトに存在しないメソッドを呼び出している
3. TypeError:文字列と整数やリストなどの型が混在している

基本的なエラーハンドリング

Pythonでは`try`と`except`を使用して、エラーハンドリングができます。

基本形

try:
    # エラーが発生する可能性があるコード
except エラーの型:
    # エラーが発生した場合の処理

具体例

# 文字列と整数を足し算
try:
    result = "文字列" + 1
except TypeError:
    result = "TypeErrorが発生しました。"
print(result)

応用例

例1:CSVファイルのエンコーディング誤りを検出

import csv

try:
    with open("data.csv", "r", encoding="utf-8") as f:
        reader = csv.reader(f)
        for row in reader:
            print(row)
except UnicodeDecodeError:
    print("エンコーディングが異なります。")

例2:APIレスポンスのJSONパース

import json

json_str = '{"name": "Alice", "age": 30}'
try:
    parsed_data = json.loads(json_str)
except json.JSONDecodeError:
    parsed_data = "JSONの形式が不正です。"

print(parsed_data)

例3:正規表現での文字列マッチング

import re

try:
    match = re.search(r"\d+", "文字列内には123という数字がある。")
    print(match.group())
except AttributeError:
    print("マッチする文字列がありません。")

まとめ

文字列のエラーハンドリングは、Pythonプログラミングにおいて非常に重要なスキルです。この記事で紹介した基本的なエラーハンドリングのテクニックと応用例を活用して、より堅牢なコードを書きましょう。

コメント

コメントする

目次