# data[].attributes.body
Ошибка переполнение вызывается, когда результат операции выходил за пределы диапазона. Она характерна для целых чисел вне диапазона.

Пример:

try:
    import math
    print(math.exp(1000))
except OverflowError:
    print("Исключение Overflow.")
else:
    print("Успех, нет ошибок!")

# data[].attributes.body
несуществующий ключ
person={"name":"Alise","age":25,"address":"123 Main St5"}
try:
occupation=person["occupation"]
except KeyError:
print("KeyError:'occupation' not found in person dictionary")

# data[].attributes.attachment_link.title
всем привет...

# data[].attributes.body
KeyError-это исключение, возникающее при обращении к элементу по ключу, отсутствующему в отображении.
Пример:
a={"a":1,"b":2,"c":3}
try:
b=a["d"]
except KeyError:
print("Этот ключ не был найден")

# data[].attributes.body
Довольно частая ошибка и программистов при невнимательности. Допустим код
a == 41
print (a)
Выйдет  SyntaxError: invalid syntax, так как надо писать = для присваивания, == это знак равенства.

# data[].attributes.headline
Ошибки отступа

# data[].attributes.subject
Ошибки отступа

# data[].attributes.body
IndentationError
Исключение, возникающее в случаях ошибок отступа.
пример:

a=3
if a>0:
print(a)

# data[].attributes.body
Нельзя использовать в инструкции except переменные, определенные в try, поотому что исключение может возникнуть прежде, чем будет определена переменная, и как только вы попытаетесь использовать инструкцию except, внутри нее выйдет исключение
try:
10 / 0
c = "Я получил 1 по геометрии"
except ZeroDivisionError:
print(c)

# data[].attributes.body
Этот тип исключения возникает, когда программа пытается открыть файл, который не существует или не может быть найден.

Пример:

try:
    # пытаемся открыть несуществующий файл для чтения
    with open("nonexistent_file.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    # если произошло исключение FileNotFoundError, выводим сообщение об ошибке
    print("Произошла ошибка: файл не найден.")

# data[].attributes.body
Синтаксические ошибки называют ошибками разбора. Синтаксическая ошибка может возникать при некорректном вводе уравнения. Это может быть вызвано, например, путём открытия скобок без их закрытия, или, вводом нескольких десятичных разделителей подряд. Компилятор ставит флаг в строке, где совершена синтаксическая ошибка.
a=int(input()
print(a)
ошибка в том что  мы забыли скобку и это синтаксическая ошибка и за это мне поставят 2.

# data[].attributes.body
интаксическая ошибка возникает в том случае, когда код записали с нарушением грамматических правил. В естественных языках грамматика важна, но текст с ошибками обычно можно понять и прочитать. В программировании все строго. Мельчайшее нарушение — и программа даже не запустится. Примером может быть забытая ;, неправильно расставленные скобки и другие детали.

Вот пример кода с синтаксической ошибкой:
print ("бебра)
если написать код выше выйдет
SyntaxError: EOL while scanning string literal

# data[].attributes.body
объект не имеет атрибута
person={"name":"Alice","age":25,"adressw":"123 Main st"}
try:
height=person.height
except AttributeError:
print ("AttributeError:'dict' object has no attribute 'height'")

# data[].attributes.body
NameError — это своего рода ошибка в python, возникающая при выполнении функции, переменной, библиотеки или строки без кавычек, которые были введены в код без какого-либо предыдущего объявления.
Пример:
try:
x="Name Error Exception"
print(y)
except NameError:
print("Name Error Exception is Caught")

# data[].attributes.body
Исключение, возникающее в случае обрыва исполнения системной функции из-за таймаута на системном уровне.

# data[].attributes.body
IndexError-это исключение, возникающее при обращении к элементу по индексу, находящемуся вне диапазона.
Пример:
my_list=[1,2,3,4,5]
try:
my_list[6]
except IndexError:
print(" Этого значения в списке my_list нет")

# data[].attributes.headline
Ошибка имени

# data[].attributes.subject
Ошибка имени

# data[].attributes.body
NameError
cвязана с тем, что название перменной не существует
пример:

a=3
if a>2:
   print(b)

# data[].attributes.body
NameError возникает в тех случаях, когда вы пытаетесь использовать несуществующие имя переменной или функции.
a=int(input())
c=sqrt(a)
print(c)
NameError: name 'sqrt' is not defined

# data[].attributes.headline
ошибки при исключениях

# data[].attributes.subject
ошибки при исключениях

# data[].attributes.body
Python - один из наиболее популярных языков программирования. В нём встроены исключения, которые позволяют обрабатывать ошибки и исключения, возникающие во время выполнения программы. Однако, несмотря на удобство и простоту использования, в коде с исключениями могут допускаться ошибки. В этой работе мы рассмотрим наиболее распространенные ошибки, связанные с использованием исключений в Python.

# data[].attributes.body
порождение встроенной функцией next , если больше нет элементов
number=[1,2,3]
iterator=iter(numbers)
while True:
try:
value=next(iterator)
print(value)
except Stoplteration:
break

# data[].attributes.body
Возникает, когда  ключ набора (словаря) не найден в наборе существующих ключей.

Пример:

names={"собака":"Шарик"}
try:
    print("Нашу кошку зовут"+names["собака"]
except KeyError:
    print("Нет такого элемента в словаре.")

# data[].attributes.headline
Синтаксические ошибки

# data[].attributes.subject
Синтаксические ошибки

# data[].attributes.body
SyntaxError
они возникают, когда интерпретатор обнаруживает синтаксическую проблему в коде.
пример:

a=8
b=9
c= a b
print (c)

# data[].attributes.headline
TypeError: Can't convert 'int' object to str implicitly

# data[].attributes.subject
TypeError: Can't convert 'int' object to str implicitly

# data[].attributes.body
Попытка соединить нестроковую переменную со строкой приведет к ошибке!
Пример кода:

numEggs = 12

print('Picrute ' + numEggs + ' niggers.')
Правильный код:
numEggs = 12print('I hate ' + str(numEggs) + ' eggs.')

# data[].attributes.body
NameError-это исключение, возникающее когда вы пытаетесь использовать несуществующее имя переменной или функции.
Пример:
A=int(input())
try:
print(b)
except:
print("Имя b не определено")

# data[].attributes.body
Поднимается, в случаях когда инструкции import не удаётся отыскать модуль, либо когда from ... import ... не находит атрибута, который требуется импортировать.
from test2 import class2
class Class1:
obj=Class2()
from 00088 import Class1
class Class2:
obj=Class1()

# data[].attributes.body
Исключение может подниматься при обработке инструкции import, при считывании изначального скрипта или стандартного ввода (в том числе в интерактивном режиме).
Пример:
a = int(input())
b = int(input())
if b > a
print(hi)
else:
print(oooo)
SyntaxError: expected ':'

# data[].attributes.body
Этот тип исключения возникает, когда операция не может быть выполнена для данного типа объекта. Например, попытка сложить число и строку вызовет исключение типа TypeError

Пример:

try:
    # применяем оператор "+" к объектам разных типов (строка и число)
    result = "2" + 2
except TypeError:
    # если произошло исключение TypeError, выводим сообщение об ошибке
    print("Произошла ошибка: неправильный тип данных.")

# data[].attributes.body
Это исключение появляется когда в функцию передан аргумент с неподдерживаемым значением.
try:
a=int(input("введите число:"))

except ValueError:
print("введнное значение не является числом")

# data[].attributes.body
Чтобы воспроизвести эту ошибку, определим функцию recursion, которая будет рекурсивной, вызывать сама себя в бесконечном цикле. В результате появится ошибка RecursionError или ошибка рекурсии, потому что стековый кадр будет заполняться данными метода из каждого вызова, но они не будут освобождаться
def recursion():
return recursion()
recursion()

# data[].attributes.body
Это ошибка новичков и энтузиастов, которые не видят границ в возможностях.  Существуют так называемые зарезервированные слова в Python, например:
and, def, algebra, math, то есть это слова, которые используются ни как слово, а как программа.
Зарезервированные слова в питоне невозможно использовать как переменные:
a="def"

# data[].attributes.body
Исключение, возникающее при обращении к элементу по индексу, находящемуся вне диапазона.

Пример:

a=[1,2,3]
try:
    n=int(input())
    print(a[n])
except IndexError:
    print("Значение в списке "a" под таким n нет.")

# data[].attributes.body
исключение появляется когда вводится лишний отступ
try:
a=input
except IndentationError:
print("ненужное отступление")

# data[].attributes.body
Исключение, возникающее в случае смешивания различных символов для отступа.
Пример:
a = '1 2'

for i in a:

if i == '1':

print('yes')

else:

print('no')

TabError: inconsistent use of tabs and spaces in indentation.

# data[].attributes.body
Эта ошибка появляется при вводе лишних пробелов и табов

try:
a=input
except IndentationError:
print("ненужное отступление")

# data[].attributes.body
появляется когда используется не введенная переменная
try:
a=input
print(a/b)
except NameError:
print(значение b не введено)

# data[].attributes.body
Если пытаться получить доступ к индекс списка, которого не существует в этом списке или находится вне его диапазона, будет вызвана ошибка индекса .
try:
a = ['a', 'b', 'c']
print(a[4])
except LookupError:
print("Исключение IndexError")
else:
print("Успех, нет ошибок!")

# data[].attributes.headline
Использование широких исключений

# data[].attributes.subject
Использование широких исключений

# data[].attributes.body
В Python можно использовать широкие исключения, такие как Exception, чтобы обрабатывать любые возможные исключения. Однако это может привести к трудностям при отладке программы, поскольку ошибка может быть вызвана любым из множества возможных исключений. Вместо этого следует использовать более конкретные исключения, чтобы обрабатывать только те ошибки, которые могут возникнуть в данном контексте.

плохой пример
try:
# код, который может вызвать любое исключение
except Exception as e:
# обработка исключения

хороший пример
try:
# код, который может вызвать только исключение ValueError
except ValueError as e:
# обработка исключения

# data[].attributes.body
возникает ошибка « TypeError неподдерживаемый тип(ы) операнда для + 'int' и 'str' ». Это происходит, когда два или более значения, которые вы пытаетесь добавить, относятся к разным типам данных.

Лучший способ исправить это — добавить значения с одинаковым типом данных .
val1=10
val2='12'
out=val1+val2
print('sum of two values',out)

# data[].attributes.body
Даже если синтаксис в инструкции или само выражение верны, они все равно могут вызывать ошибки при исполнении. Исключения Python — это ошибки, обнаруживаемые при исполнении, но не являющиеся критическими. Скоро вы узнаете, как справляться с ними в программах Python. Объект исключения создается при вызове исключения Python. Если скрипт не обрабатывает исключение явно, программа будет остановлена принудительно.
a = 2
b = 'PythonRu'
a + b

# data[].attributes.body
е сли неправильно организовать отступы, пробелы или табуляции в программе, то вернется ошибка
IndentationError: expected an intended block.
пример:
def find_average(grades):
average = sum(grades) / len(grades)
print(average)
return average

# data[].attributes.headline
Неправильный порядок блоков обработки исключений

# data[].attributes.subject
Неправильный порядок блоков обработки исключений

# data[].attributes.body
При обработке исключений в Python следует учитывать порядок блоков обработки исключений. Если блоки обработки исключений расположены в неправильном порядке, то исключение может быть обработано неправильным обработчиком или даже не быть обработано вовсе. Поэтому необходимо убедиться, что блоки обработки исключений расположены в правильном порядке.

плохой пример
try:
# код, который может вызвать исключение ValueError
except Exception as e:
# обработка любого исключения
except ValueError as e:
# обработка исключения ValueError

хороший пример
try:
# код, который может вызвать исключение ValueError
except ValueError as e:
# обработка исключения ValueError
except Exception as e:
# обработка любого другого исключения

# data[].attributes.body
Ошибка имени возникает, когда локальное или глобальное имя не находится.

В следующем примере переменная ans не определена. Результатом будет ошибка NameError.
try:
print(ans)
exceptNameError:
print("NameError: переменная 'ans' не определена")
else:
print("Успех, нет ошибок!")

# data[].attributes.body
Даже если синтаксис в инструкции или само выражение верны, они все равно могут вызывать ошибки при исполнении. Исключения Python — это ошибки, обнаруживаемые при исполнении, но не являющиеся критическими. Скоро вы узнаете, как справляться с ними в программах Python. Объект исключения создается при вызове исключения Python. Если скрипт не обрабатывает исключение явно, программа будет остановлена принудительно.
a = 2
b = 'PythonRu'
a + b

# data[].attributes.headline
Неявное подавление исключений

# data[].attributes.subject
Неявное подавление исключений

# data[].attributes.body
В Python можно явно подавить исключение с помощью ключевого слова try/except. Однако, неявное подавление исключений может привести к нежелательным последствиям, таким как скрытие ошибок или их неправильная обработка. Поэтому необходимо быть осторожным при использовании подавления исключений и использовать его только там, где это действительно необходимо.

плохой пример
try:
# код, который может вызвать исключение, но его не нужно обрабатывать
except:
pass

хороший пример
try:
# код, который может вызвать исключение, но его не нужно обрабатывать
except SomeSpecificException:
# обработка только конкретного исключения

# data[].attributes.body
Это исключение, которое возникает, когда в программе заканчивается доступная память для выполнения операции. Оно возникает, когда процесс пытается занять больше памяти, чем ему разрешено, или когда операционная система не может выделить достаточно памяти.

Пример:

try:
    # создаем список слишком большого размера, чтобы выделенной памяти не хватило
    big_list = [1] * (10 ** 8)
except MemoryError:
    # если произошло исключение MemoryError, выводим сообщение об ошибке
    print("Произошла ошибка: недостаточно памяти для выполнения операции.")

# data[].attributes.headline
SyntaxError (Синтаксическая ошибка)

# data[].attributes.subject
SyntaxError (Синтаксическая ошибка)

# data[].attributes.body
Синтаксические ошибки часто называют ошибками разбора. Они возникают, когда интерпретатор обнаруживает синтаксическую проблему в коде.

Пример:

a=8
b=10
a=ab

Вывод:

File" ",line 3
c=ab
^
SyntaxError: invalid syntex

# data[].attributes.body
Ошибки памяти чаще всего связаны с оперативной памятью компьютера и относятся к структуре данных под названием “Куча” (heap). Если есть крупные объекты (или) ссылки на подобные, то с большой долей вероятности возникнет ошибка OutofMemory. Она может появиться по нескольким причинам:
•Использование 32-битной архитектуры Python (максимальный объем выделенной памяти невысокий, между 2 и 4 ГБ);
•Загрузка файла большого размера;
•Запуск модели машинного обучения/глубокого обучения и много другое
Обработать ошибку памяти можно с помощью обработки исключений — резервного исключения.
Пример:
public class GetFuture {

private static final Logger logger = LogManager.getLogger(BadThread.class);
private static final ExecutorService executor = Executors.newFixedThreadPool(5);

public static void main(String[] args) throws Exception {
try {
executor.submit(MemoryGrabber::grabAllMemory).get();
} catch (Throwable e) {
logger.error(e);
}
}

# data[].attributes.body
Когда инструкция утверждения не верна, вызывается ошибка утверждения.

Предположим, есть две переменные: a и b. Их нужно сравнить. Чтобы проверить, равны ли они, необходимо использовать ключевое слово assert, что приведет к вызову исключения Assertion в том случае, если выражение будет ложным.

Пример:

try:
    a = 10
    b = "PythonRu"
    assert a == b
except AssertionError:
    print("Исключение AssertionError.")
else:
    print("Успех, нет ошибок!")

# data[].attributes.body
Эта ошибка похожа по духу на синтаксическую и является ее подвидом. Тем не менее она возникает только в случае проблем с отступами.
Пример:
for i in range(10):
print('Привет Мир!')
Вывод:
File "<ipython-input-6-628f419d2da8>", line 2
print('Привет Мир!')
^
IndentationError: expected an indented block

# data[].attributes.body
Эта ошибка связана со стеком и происходит при вызове функций. Как и предполагает название, ошибка рекурсии возникает, когда внутри друг друга исполняется много методов (один из которых — с бесконечной рекурсией), но это ограничено размером стека.
Чтобы воспроизвести эту ошибку, определим функцию recursion, которая будет рекурсивной — вызывать сама себя в бесконечном цикле. В результате появится ошибка StackOverflow или ошибка рекурсии, потому что стековый кадр будет заполняться данными метода из каждого вызова, но они не будут освобождаться.
Пример:
def recursion():
return recursion()

recursion()
Вывод:
---------------------------------------------------------------------------

RecursionError                            Traceback (most recent call last)

<ipython-input-3-c6e0f7eb0cde> in <module>
----> 1 recursion()
---> 1 recursion()

<ipython-input-2-5395140f7f05> in recursion()
1 def recursion():
----> 2     return recursion()

... last 1 frames repeated, from the frame below ...<ipython-input-2-5395140f7f05> in recursion()
1 def recursion():
----> 2     return recursion()

RecursionError: maximum recursion depth exceeded

# data[].attributes.body
Эта ошибка возникает в программе, когда в назначении атрибута возникает ошибка кондиционирования.

Например, если мы присвоим целочисленной переменной какое-то значение и попытаемся использовать любую строковую функцию из этой переменной, это вызовет AttributeError.

Пример:

а = 15
a.append( "javatpoint" )
Выход:
AttributeError: 'int' object has no attribute 'append'

# data[].attributes.body
Исключение, описывающее ошибку времени исполнения не попадающую в другие категории.
«Прикрепленное значение» являет собой строку с описанием того, что конкретно пошло не так.
Пример:
def loop():
loop()
Вывод:

loop()  # RuntimeError: maximum recursion depth exceeded

Пример вызывает «вечную» рекурсию и поднимает рассматриваемое исключение (3.5 для ошибок рекурсии выделен новый тип исключений — RecursionError).

# data[].attributes.body
Исключение, возникающее в случае неудачи импорта модуля.
Поднимается, в случаях когда инструкции import не удаётся отыскать модуль, либо когда from ... import ... не находит атрибута, который требуется импортировать.

Пример:
import unknown

Вывод:

# ImportError: No module named unknown

# data[].attributes.headline
Методы и функции обработки списков

# data[].attributes.subject
Методы и функции обработки списков

# data[].attributes.body
метод:for i in list() — перебирает элементы слева направо.
пример:
for i in [1, 2, 3, 4]:
print(i, end=", ")
результат:1,2,3,4

метод:sum(l) — сумма чисел списка;

пример:
numbers = [1,2,3,4,5,1,4,5]
Sum = sum(numbers)
print(Sum)
Sum = sum(numbers, 10)
print(Sum)

метод:Pop()—А данный метод удаляет элемент в конкретно указанном индексе, а также выводит удалённый элемент. Если индекс не указан, метод по умолчанию удалит последний элемент:

пример:

numbers = [1, 5, 9, 6]
numbers.pop(1)
# получаем:
# 5
# [1, 9, 6]numbers = [1, 5, 9, 6]
numbers.pop(1)
# получаем:
# 5
# [1, 9, 6]

# data[].attributes.body
Исключение, возникающее в случаях, когда результат арифметической операции слишком велик для представления.
Исключение обычно не возникает при операциях с целыми (они скорее поднимут MemoryError). Однако, по историческим причинам данное исключение иногда поднимается для целых вне допустимых пределов.

Пример:

namespace _1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            Graphics graphics = pictureBox1.CreateGraphics();
            Pen pen = new Pen(Color.Black, 3f);

            Point[] points = new Point[100];
            for (int i = 0; i < points.Length; i+=2)
            {
                points[i] = new Point(i, (int)(i - (i / (25 + (i * i) / 4)) * Math.Log10(5 - Math.Sqrt(Math.Abs(i)))));
            }
            graphics.DrawLines(pen, points);
        }

# data[].attributes.body
NameError возникает в тех случаях, когда вы пытаетесь использовать несуществующие имя переменной или функции.

Пример:

books = ["Near Dark", "The Order", "Where the Crawdads Sing"]
print(boooks)

Выход:

Traceback (most recent call last):
  File "main.py", line 3, in
	print(boooks)
NameError: name 'boooks' is not defined

# data[].attributes.body
Исключение, возникающее в ходе операций с буфером.

Поднимается в случае, когда операция, тем или иным образом связанная с буфером, не может быть выполнена.

Пример:

import random
from concurrent.futures import wait, ALL_COMPLETED, ProcessPoolExecutor
def sout(text: str):
print(text + "   qqq")
b = text
a = b
return a

if __name__ == '__main__':
executor = ProcessPoolExecutor()
tasks = []
times = 5000
for i in range(times):
tasks.append(
executor.submit(
sout,
str(i) + random.choice(["java", "python", "go"])
)
)

dones, _ = wait(tasks, return_when=ALL_COMPLETED)
stacks = []
for task in dones:
if task.exception():
print("Worker return exception: {}".format(task.exception()))
continue
else:
stacks.append(task.result())
q = 10
Вывод:

F:\scoop\apps\miniconda3\current\envs\main\python.exe F:\scoop\apps\jetbrains-toolbox\current\apps\PyCharm-P\ch-1\221.5591.52\plugins\python\helpers\pydev\pydevd.py --multiprocess --qt-support=auto --client 127.0.0.1 --port 55271 --file G:/python/main/test.py
Connected to pydev debugger (build 221.5591.52)
Exception ignored in tp_clear of: <class 'memoryview'>
Traceback (most recent call last):
File "F:\scoop\apps\miniconda3\current\envs\main\lib\concurrent\futures\process.py", line 697, in submit
w = _WorkItem(f, fn, args, kwargs)
BufferError: memoryview has 1 exported buffer
0go   qqq
1java   qqq
2go   qqq
3java   qqq
4python   qqq
...[etc]

# data[].attributes.body
Исключение, поднимаемое парсером при обнаружении синтаксических ошибок в исходном коде.

Пример:

a = 10
b = 15
result = 0
def fun(x,y):
    return x y
result = fun(a,b)
print(result)

Выход:

File "main.py", line 13
    result = x y
               ^
❌ SyntaxError: invalid syntax

# data[].attributes.body
Исключение, возникающее в случаях, когда глобальное или локальное имя не найдено.

Исключение относится только к неуточнённым именам.

Пример:

pront('Hello')
# NameError: name 'pront' is not defined
# Допущена ошибка в имени функции print. Имя pront не определено.

В качестве «прикрепленного значения» выступает сообщение об ошибке, включающее собственно имя, которое не удалось обнаружить.

# data[].attributes.attachment_link.title
Без названия

# data[].attributes.body
Эта ошибка похожа по духу на синтаксическую и является ее подвидом. Тем не менее она возникает только в случае проблем с отступами.

Пример:

for i in range(10):
    print('Привет Мир!')

  File "", line 2
    print('Привет Мир!')
        ^
IndentationError: expected an indented block

# data[].attributes.body
Исключение, возникающее в случае попыток создать уже существующий файл, либо директорию.

Данный тип исключения соответствует системной ошибке с errno EEXIST.

Пример:

def module():
    redak = open (str(input("Как называется файл?: ")), "x")
    redak.write (str(input("На какой текст хотите поменять?: ")))
    redak.close()

if __name__== "__main__":
    L = str(input("Форматировать текст?"))
    if L == "Да" or "+":
        module()

Вывод:

Traceback (most recent call last):
  File "test.py", line 9, in <module>
    module()
  File "test.py", line 2, in module
    redak = open (str(input("Как называется файл?: ")), "x")
  FileExistsError: [Errno 17] File exists: 'b.txt'

# data[].attributes.body
Исключение, возникающее в некритичных случаях исчерпания свободной памяти.

Пример:

s = []
for i in range(1000):
   for j in range(1000):
       for k in range(1000):
           s.append("More")

Выход:

Как и следовало ожидать, этих миллионов строк многовато, скажем, для ноутбука. Распечатывается следующая ошибка:

C:\code\Python\MemErr\venv\3K\Scripts\python.exe C:/code/python/MemErr/main.py
Traceback (most recent call last):
  File "C:/code/python/MemErr/main.py", line 6, in <module>
    s.append("More")
MemoryError

# data[].attributes.body
Исключение, возникающее в случае обнаружения рекурсивного вызова.

Пример:

def func():
    func()

func()

Выход:

Поскольку у рекурсивной функции func()нет условия завершения, ее вызов создает бесконечный цикл, поскольку функция продолжает вызывать себя снова и снова, пока не RecursionError: maximum recursion depth exceededпроизойдет ошибка:

Traceback (most recent call last):
  File "test.py", line 4, in <module>
    func()
  File "test.py", line 2, in func
    func()
  File "test.py", line 2, in func
    func()
  File "test.py", line 2, in func
    func()
  [Previous line repeated 996 more times]
RecursionError: maximum recursion depth exceeded

# data[].attributes.body
Исключение, возникающее в случае ошибок, связанных с Юникодом.

Пример:

try:
'кот'.decode('ascii')
# 'ascii' codec can't decode byte 0xd0 in position 0:
# ordinal not in range(128)
Вывод:
except UnicodeError as e:
e.encoding  # ascii
e.reason  # ordinal not in range(128)
e.object  # кот
e.start  # 0
e.end  # 1

# data[].attributes.body
Исключение, описывающее ошибку времени исполнения не попадающую в другие категории.

Ошибка выполнения служит базовым классом для ошибки NotImplemented. Абстрактные методы определенного пользователем класса вызывают это исключение, когда производные методы перезаписывают оригинальный.

Пример:

class BaseClass(object):
    """Опередляем класс"""
    def __init__(self):
        super(BaseClass, self).__init__()
    def do_something(self):
	# функция ничего не делает
        raise NotImplementedError(self.__class__.__name__ + '.do_something')

class SubClass(BaseClass):
    """Реализует функцию"""
    def do_something(self):
        # действительно что-то делает
        print(self.__class__.__name__ + ' что-то делает!')

SubClass().do_something()
BaseClass().do_something()

Выход:

SubClass что-то делает!



---------------------------------------------------------------------------

NotImplementedError                       Traceback (most recent call last)

 in
     14
     15 SubClass().do_something()
---> 16 BaseClass().do_something()


 in do_something(self)
      5     def do_something(self):
      6         # функция ничего не делает
----> 7         raise NotImplementedError(self.__class__.__name__ + '.do_something')
      8
      9 class SubClass(BaseClass):


NotImplementedError: BaseClass.do_something

# data[].attributes.body
Базовое исключение для ошибок доступа по ключу/индексу.

Этот тип является базовым для исключений, поднимаемых в случаях когда производится обращение по несуществующему ключу или индексу в отображениях и последовательностях.

Кроме этого, может возбуждаться напрямую в codecs.lookup().

Пример:

# lists
x = [1, 2, 3, 4]
try:
    print(x[10])

Вывод:

except LookupError as e:
    print(f"{e}, {e.__class__}")

>>> list index out of range, <class 'IndexError'>

Пример 2:

# strings
x = "Pylenin"
try:
    print(x[10])

Вывод:

except LookupError as e:
    print(f"{e}, {e.__class__}")

>>> string index out of range, <class 'IndexError'>

# data[].attributes.attachment_link.title
Без названия

# data[].attributes.body
ImportError: cannot import name выброшенного из-за циклической зависимости. Два модуля питона

test1.py и test2.py созданы для этого:

test1.py:

from test2 import Class2
class Class1:
    obj = Class2()

test2.py:

from test1 import Class1
class Class2:
    obj = Class1()

В приведенном выше примере инициализация objin test1зависит от test2, а objin test2зависит от test1. Это круговая зависимость, поскольку оба файла пытаются загрузить друг друга. Поэтому запуск test1.py(или test2.py) вызывает ImportError: cannot import nameошибку:

Traceback (most recent call last):
  File "test1.py", line 1, in
    from test2 import Class2
  File "test2.py", line 1, in
    from test1 import Class1
  File "test1.py", line 1, in
    from test2 import Class2
ImportError: cannot import name 'Class2' from partially initialized module 'test2' (most likely due to a circular import) (test2.py)

# data[].attributes.body
Исключение, возникающее в ходе обращения к атрибуту объекта.

Выводиться в случаях ошибок доступа к атрибуту, либо его установки.

Пример:

my_str = 'my'
no_attr = my_str.noattr  # AttributeError: 'str' object has no attribute 'noattr'
my_str.noattr = 10  # AttributeError: 'str' object has no attribute 'noattr'

Заметка:

Когда объект не поддерживает доступ к атрибуту или его установку вовсе, поднимается TypeError.

# data[].attributes.body
Исключение, возникающее в ходе выполнения арифметических операций.

Пример:

try:
    k = 1 / 0
    except ArithmeticError:
        k = 0
     print(k)

# data[].attributes.body
Исключение, используемое для описания системных ошибок.
OSError([arg]) или OSError(errno, strerror[, filename[, winerror[, filename2]]])

# data[].attributes.body
IndexError — это тип исключения в python, которое вызывается системой, когда индекс, указанный как индекс, не лежит в диапазоне индексов границ списка. Это исключение является исключением времени выполнения и должно обрабатываться с помощью блока try-catch.
Пример:
import sys
print("Lets Try to find out the result for students in the class")
n=int(input())
marks_list = [20,30,50,80,90]
print("Marks for roll no " + str(n) +" is " +str(marks_list [n]))

# data[].attributes.body
TypeError — это своего рода ошибка, которую генерирует python. Мы пытаемся выполнить операцию не того типа объекта. Например, если мы пытаемся извлечь квадратный корень из числа, но передаем список вместо int, то Python сгенерирует TypeError.
Пример:
list1 = [7,8,9,10]
list2 = 's';
result = list2.join(list1)
print(result)

# data[].attributes.attachment_link.title
OOP 36 Обработка исключений Try Except Finally Python