zoukankan      html  css  js  c++  java
  • 85_Go基础_1_53 自定义结构体实现错误

     1 package main
     2 
     3 import (
     4     "fmt"
     5     "math"
     6 )
     7 
     8 //1.定义一个结构体,表示错误的类型
     9 type areaError struct {
    10     msg    string
    11     radius float64
    12 }
    13 
    14 // 2.实现error接口,就是实现Error()方法
    15 func (e *areaError) Error() string {
    16     return fmt.Sprintf("error:半径,%.2f,%s", e.radius, e.msg)
    17 }
    18 
    19 func circleArea(radius float64) (float64, error) {
    20     if radius < 0 {
    21         return 0, &areaError{"半径是非法的", radius}
    22     }
    23     return math.Pi * radius * radius, nil
    24 }
    25 
    26 func main() {
    27     /*
    28         自定义错误:
    29     */
    30 
    31     radius := -3.0
    32     area, err := circleArea(radius)
    33 
    34     if err != nil {
    35         fmt.Println(err)
    36         if err, ok := err.(*areaError); ok {
    37             fmt.Printf("半径是:%.2f\n", err.radius)
    38         }
    39         return
    40     }
    41     fmt.Println("圆形的面积是:", area)
    42 
    43 }
  • 相关阅读:
    15-数组concat()方法和push比较
    06-使用云储存上传工具
    05-云函数/云数据库的增删改查
    错题1
    c++链表
    8817
    8816
    1177
    1355
    c++期末考
  • 原文地址:https://www.cnblogs.com/luwei0915/p/15634696.html
Copyright © 2011-2022 走看看