Мастерство в обработке ошибок в Golang

GolangGolangBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

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

Введение

Лабораторная работа panic предназначена для проверки ваших способностей в обработке неожиданных ошибок в Golang.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL go(("Golang")) -.-> go/ErrorHandlingGroup(["Error Handling"]) go/ErrorHandlingGroup -.-> go/panic("Panic") subgraph Lab Skills go/panic -.-> lab-15493{{"Мастерство в обработке ошибок в Golang"}} end

Panic

В данной лабораторной работе требуется использовать функцию panic для быстрого завершения программы при возникновении ошибок, которые не должны появляться в нормальной работе или которые вы не готовы обрабатывать优雅но.

  • Основные знания языка программирования Golang.
  • Ознакомленность с обработкой ошибок в Golang.
  • Понимание функции panic в Golang.
## Запуск этой программы вызовет панику, выведет
## сообщение об ошибке и трассу горутин, а затем
## завершится с ненулевым статусом.

## Когда первый вызов `panic` в `main` срабатывает, программа
## завершается, не доходя до оставшейся части кода. Если вы
## хотите увидеть, как программа пытается создать временный файл,
## закомментируйте первый вызов `panic`.
$ go run panic.go
panic: a problem

goroutine 1 [running]:
main.main() /.../panic.go:12 +0x47
...
exit status 2

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

Ниже представлен полный код:

// `panic` обычно означает, что что-то пошло неожиданно
// не так. Большинство случаев использования этого - это быстрый
// выход из программы при ошибках, которые не должны появляться
// в нормальной работе или которые мы не готовы обрабатывать优雅но.

package main

import "os"

func main() {

	// Мы будем использовать `panic` на всем сайте для проверки
	// на неожиданные ошибки. Это единственная программа на сайте,
	// которая должна вызывать панику.
	panic("a problem")

	// Часто `panic` используется для аварийного завершения программы,
	// если функция возвращает ошибочное значение, которое мы не знаем,
	// как (или хотим) обработать. Вот пример вызова `panic`, если
	// при создании нового файла возникает непредвиденная ошибка.
	_, err := os.Create("/tmp/file")
	if err!= nil {
		panic(err)
	}
}

Резюме

В этой лабораторной работе вы узнали, как использовать функцию panic для обработки неожиданных ошибок в Golang. Не забывайте использовать panic только при необходимости и обрабатывать ошибки尽可能优雅地.