Перейти до основного вмісту

Публікації

Показано дописи з міткою "Exception"

Обробка винятків в Python

Під час виконання програми можуть виникати неочікувані ситуації: ділення на нуль, спроба доступу до неіснуючого файлу, некоректне введення користувача або помилки мережевого з’єднання. Такі ситуації називаються винятками. Python надає потужний і гнучкий механізм обробки винятків, який дозволяє запобігати аварійному завершенню програми та коректно реагувати на помилки. Що таке виняток? Виняток — це об’єкт, який описує помилку, що виникає під час виконання програми. Коли виникає виняток, нормальний потік виконання програми переривається. print(10 / 0) Цей код викликає ZeroDivisionError , оскільки ділення на нуль є математично неможливим. Блок try-except Основним механізмом обробки винятків у Python є блок try-except . Код, який може викликати помилку, розміщується всередині блоку try , а логіка обробки помилки — у блоці except . try: number = 10 / 0 except ZeroDivisionError: print("Ділення на нуль заборонене.") Якщо у блоці try виникає виняток, Python нег...

Проблема при запуску Liquibase на Digital Ocean та її вирішення

Нещодавно зустрівся з такою проблемою: SpringBoot-проєкт не запустився на сервері через проблему пов’язану з Liquibase. Детальніше про проєкт Сам проєкт повністю написаний на SpringBoot, база даних на MySQL, міграція здійснюється за допомогою Liquibase. Проєкт відносно невеликий і локально запускався і працював без проблем. Але при запуску на продакт-сервері отримувалася помилка: ERROR org.springframework.boot.SpringApplication [main] Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: Invocation of init method failed; nested exception is liquibase.exception.DatabaseException: Unable to create or change a table without a primary key, when the system variable 'sql_require_primary_key' is set. Add a primary key to the table or unset this variable to avoid this me...