Как стать автором
Поиск
Написать публикацию
Обновить
31
0
Евгений Казанов @evgenyk

Пользователь

Отправить сообщение

In the computer context, saving refers to the process of writing data to a storage device so it can be accessed and used later, even after the computer is turned off.

Может лучше saving_delay?

Ну вообще-то это переводится примерно так: "Сохрани период". С именами все очень и очень непросто.

получить навыки рабочей профессии не трудно

Очень все по разному. Стать хорошим сварщиком или скажем высококвалифицированым станочником весьма непросто.

Работа с исключениями в питоне выполняется ключевыми словами try, except, else, finally и raise. При помощи их можно сгенерировать исключение и обработать его. Ошибка же (error) по английски это просто субъективное описание ситуации. Никаких специфических специальных средств или терминов связанных с ошибками в Питоне нет. Вы можете обработать логическую ситуацию, которую называете ошибкой используя исключения, или по другому, например вернув код ошибки.

С другой стороны можно использовать исключения для обработки ситуаций вовсе не связанных с какими-либо ошибками.

В общем ошибка вовсе не равна исключению, почему я и написал свой коммент.

ИМХО, в Питоне неправильно называть "исключение ошибкой". Это совершенно законный способ изменить ход течения программы.

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

Думаю, что в ушном канале возможно да. Там все сильно по другому работает, чем в открытом динамике.

Вот самое на мой взгляд правдопобное описание события, утянул из ФБ. Я не настоящий сварщик, но тут по крайней мере у меня не течет кровь из глаз и не переклинивает мои инженерные мозги:

Что произошло?

В Испании и Португалии возник дефицит активной мощности ~4 ГВт после аварийного отключения магистральной линии между Наваррой и Пиренеями (соединение с Францией).

Это привело к падению частоты до 49,3 Гц и автоматическому отделению Иберийского полуострова от общеевропейской сети ENTSO-E.

Ещё накануне ENTSO-E предупредила об «оранжевом» уровне угрозы:

- плановый ремонт 6 ГВт АЭС во Франции (Flamanville-3, Cattenom-1),

- остановка 3 ГВт угольных мощностей в Германии,

- резкое сокращение резервов электроэнергии.

Причины кризиса

Узкое место в перетоках Франция → Испания

После мягкой, но ветреной зимы ранняя апрельская жара высушила Пиренейских ГЭС. Импорт из Франции достиг рекордных 4 ГВт, но зависел от единственной ЛЭП – её обрыв привёл к отключению.

Затянувшийся ремонт АЭС во Франции

EDF продлил простой Flamanville-3 на неделю, что в сумме вывело из работы 12 ГВт атомных мощностей (⅕ французского парка).

Задержка сетевых инвестиций

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

Системные риски, признанные ЕС

Ещё в марте Еврокомиссия рекомендовала гражданам иметь трёхдневный запас воды, еды и power bank’ов – то есть о таких сценариях знали заранее.

Не спец по "гравитационным волнам", но эта статья это какой-то ужас.

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

У меня есть личный эмпирический метод оценки читаемости кода. А именно: расстояние с которого можно более-менее понять, что делает код.

Словари это лучшее, что есть в питоне. Просто нужно уметь их готовить.

Скоро изобретут кнопку, при нажатии на которую резко поднимается настроение. И все будут только сидеть и нажимать эту кнопку.

ИМХО, использование исключений должно быть предметом соглашений при написании софта. Впрочем, как и многое другое. Тогда они позволяют существенно упростить граф. Т.е. Желательно например ловить исключения в определенных, заранее оговоренных местах приложения. Тогда они будут резко упрощать граф, а не запутывать его.
Вот я приводил пример таких договоренностей в API написанной с использованием FastAPI.
Похожие договоренности можно использовать и в других областях.

Это был пример. Поскольку вижу, что Вы не поняли, добавлю. В исключение вы можете в момент его вызова добавить любую информацию. Например номер строки программы. Или запись. Или логгировать.
Как я уже писал в примере про FastAPI. Вот возьмем пример про FastAPI. Вы получили какую-то ошибку, которая не дает выполнить запрос к Endpoint. Вам нужно залоггировать ошибку, вернуть ошибку в ответе на запрос и дать возможность расследовать Вашу ошибку. Мой путь:

  • Генерируем ID ошибки.

  • Пишем в лог: ID ошибки, номер строки кода.

  • Вызываем исключение, при этом добавляем в объект исключения ID ошибки, номер строки кода.

  • В обработчике исключения возвращаем ответ на запрос с кодом ошибки и ID ошибки.

Все. И вам не нужно возвращать информацию через все вызовы и ничего не потеряно.

Прикольно, но без номеров я прямо страдал. У меня все файлы, а особенно команды начинаются с номеров.

Я такие статьи во многом ради комментов и читаю.

А когда у вас в блоке кода 3-5 мест, где может быть выброшено исключение одного и того же типа (например, мы открываем на чтение два файла, и третий - на запись, и каждый из них может не существовать или быть недоступен) - нам надо или принудительно сохранять контекст, или мы этот контекст потеряем.

В питоне эта проблема решается элементарно.

raise RuntimeError(f"Can not open file. Filename: {filename}")

В питоне обаботка исключений законная и вполне равноправная операция для управления ходом выполнения программы. Причем она требует (КМК) даже меньше ресурсов, чем if. Так что ничего страшного не случиться.

Скажем сделать цикл с выходами по исключениям вполне себе законное решение. Причем это иногда может упростить тело цикла.

1
23 ...

Информация

В рейтинге
8 880-й
Откуда
Висагинас, Литва, Литва
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer
Senior
Python
Linux
Git
Docker
Kubernetes
English
Bash
PostgreSQL
MySQL
Django