Обработка исключений требует правильного ввода и НЕ возвращает None - PullRequest
0 голосов
/ 10 января 2019

У меня проблемы с этим разделом кода Python, который запрашивает ввод данных пользователем, чтобы проверить, есть ли имя в базе данных. Код работает как положено и возвращает имя, если оно находится в БД. Однако он возвращает None и переходит к следующему разделу, если имя отсутствует в базе данных. Я ищу способ требовать имя, которое находится в БД. Кажется, моя обработка исключений не работает.

def getOfc(x):
    name = x
    try:
        result = theCursor.execute("SELECT reporting_ofc FROM cases WHERE reporting_ofc IS ('{}') LIMIT 1".format(name))
        for row in result:
            if row[0].isalnum():
                return row[0]
            else:
                raise ValueError
    except sqlite3.OperationalError:
        print("The Table Doesn't Exist")
    except ValueError:
        print("Couldn't Retrieve Data from Database")

x = getOfc("Name not in DB")
print(x)

db_conn.close()

Правильно возвращает имя, если в базе данных SQLite. Возвращает None вместо вызова исключения.

...