mirror of
https://github.com/duke-git/lancet.git
synced 2026-02-04 12:52:28 +08:00
error: Add unwrap (#24)
Add a unwrap func helper * Unwrap if err is nil then it returns a valid value otherwise it panics
This commit is contained in:
26
README.md
26
README.md
@@ -588,3 +588,29 @@ func IsIpV6(ipstr string) bool //check if the string is a ipv6 address
|
||||
func IsStrongPassword(password string, length int) bool //check if the string is strong password (alpha(lower+upper) + number + special chars(!@#$%^&*()?><))
|
||||
func IsWeakPassword(password string) bool //check if the string is weak password(only letter or only number or letter + number)
|
||||
```
|
||||
|
||||
### 14. error helpers
|
||||
|
||||
- Contain functions to handle errors
|
||||
- Usage: import "github.com/duke-git/lancet/xerror"
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"github.com/duke-git/lancet/errors"
|
||||
)
|
||||
|
||||
func main() {
|
||||
x := Unwrap(strconv.Atoi("42")) // Unwrap if err is nil then it returns a valid value otherwise it panics
|
||||
}
|
||||
```
|
||||
|
||||
- Function list:
|
||||
|
||||
```go
|
||||
Unwrap[T any](val T, err error)
|
||||
```
|
||||
@@ -589,3 +589,29 @@ func IsIpV6(ipstr string) bool //判断字符串是否是ipv6
|
||||
func IsStrongPassword(password string, length int) bool //判断字符串是否是强密码(大小写字母+数字+特殊字符)
|
||||
func IsWeakPassword(password string) bool //判断字符串是否是弱密码(只有字母或数字)
|
||||
```
|
||||
|
||||
### 14. error helpers
|
||||
|
||||
- Contain functions to handle errors
|
||||
- Usage: import "github.com/duke-git/lancet/xerror"
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"github.com/duke-git/lancet/errors"
|
||||
)
|
||||
|
||||
func main() {
|
||||
x := Unwrap(strconv.Atoi("42"))
|
||||
}
|
||||
```
|
||||
|
||||
- Function list:
|
||||
|
||||
```go
|
||||
Unwrap[T any](val T, err error)
|
||||
```
|
||||
14
xerror/xerror.go
Normal file
14
xerror/xerror.go
Normal file
@@ -0,0 +1,14 @@
|
||||
// Copyright 2021 dudaodong@gmail.com. All rights reserved.
|
||||
// Use of this source code is governed by MIT license
|
||||
|
||||
// Package xerror implements helpers for errors
|
||||
package xerror
|
||||
|
||||
// Unwrap if err is nil then it returns a valid value
|
||||
// If err is not nil, Unwrap panics with err.
|
||||
func Unwrap[T any](val T, err error) T {
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return val
|
||||
}
|
||||
24
xerror/xerror_test.go
Normal file
24
xerror/xerror_test.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package xerror
|
||||
|
||||
import (
|
||||
"github.com/duke-git/lancet/internal"
|
||||
"strconv"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestUnwrap(t *testing.T) {
|
||||
assert := internal.NewAssert(t, "TestUnwrap")
|
||||
assert.Equal(42, Unwrap(strconv.Atoi("42")))
|
||||
}
|
||||
|
||||
func TestUnwrapFail(t *testing.T) {
|
||||
assert := internal.NewAssert(t, "TestUnwrapFail")
|
||||
|
||||
_, err := strconv.Atoi("4o2")
|
||||
defer func() {
|
||||
v := recover()
|
||||
assert.Equal(err.Error(), v.(*strconv.NumError).Error())
|
||||
}()
|
||||
|
||||
Unwrap(strconv.Atoi("4o2"))
|
||||
}
|
||||
Reference in New Issue
Block a user