| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package main
- import (
- "fmt"
- )
- func divide(a int, b int) (int, error) {
- // return a / b, nil
- if b == 0 {
- panic("division by zero!")
- }
- return a / b, nil
- }
- func test(a int8) {
- if a == 0 {
- panic("a = 0; ")
- }
- }
- func saveData() {
- fmt.Print("Сохраняем данные; ")
- // ..
- }
- func main() {
- /*
- Если defer находится выше panic, то сначала
- выполнится defer, а потом паника. Однако, если defer назодится
- ниже panic, то defer не выполнится вовсе.
- */
- defer saveData()
- fmt.Print("Программа работае; ")
- test(0)
- /*
- var input int
- _, err := fmt.Scan(&input)
- if err != nil {
- fmt.Println("Проверьте типы входных параметров.")
- } else {
- fmt.Println(divide(input, 5))
- }
- */
- /*
- err := errors.New("my error")
- fmt.Println("", err)
- */
- /*
- var a, b int
- fmt.Scan(&a, &b)
- res, err := divide(a, b)
- if err != nil {
- fmt.Println("ошибка")
- } else {
- fmt.Println(res)
- }
- */
- }
|