«Во время обработки вышеуказанного исключения произошло другое исключение» - PullRequest
0 голосов
/ 08 мая 2019

Я читаю из файла список дробей и разбираю их в список кортежей. Я хочу, чтобы произошла ошибка, если файл пуст или знаменатель меньше или равен 0.

Я пытался поместить if (EOFERRor), elif (zerodivisionerror), elif (assertionerror) и др. Внутри класса InvalidFile (Exception). До того, как мое исключение подняло бы значение для конца файла, поэтому я специально включил его в него.

Я думаю, что EOF происходит одновременно с делением на ноль, но я отделил список от файла, чтобы этого не происходило

class InvalidFile(Exception):

    if(EOFError):
        pass
    else:
        print('Invalid file format')
        sys.exit(1)

def createFractionList(filePath):

    try:
        f = open(inFile)
        f.close()
    except FileNotFoundError:
        print('FileNotFoundError')
        sys.exit(1)

    fractionList = []
    for line in open(filePath):
        line = line.rstrip()
        try:
            numerator, denominator = tuple(int(x) for x in line.split())
        except:
            raise InvalidFile
        fractionList.append((numerator, denominator))
    for lists in fractionList:
       try:
            lists[0]/lists[1]
       except:
           raise InvalidFile
    return fractionList
dateList = createFractionList(inFile)
print(dateList)

ВХОД:

1 0

3 4

5 6

7 8

9 10

0 8

2 4

9 12

20 24

35 40

54 60

Ожидаемый результат: Неверный формат файла

Фактический: C: \ Users \ Xavier \ PycharmProjects \ hw4 \ venv \ Scripts \ python.exe C: /Users/Xavier/PycharmProjects/hw4/hw4.py Traceback (последний вызов был последним): Файл "C: /Users/Xavier/PycharmProjects/hw4/hw4.py", строка 33, в createFractionList списки [1] / 0 ZeroDivisionError: деление на ноль

Во время обработки вышеуказанного исключения произошло другое исключение:

...