Skip to content

Commit 245e7b8

Browse files
authored
Improvements to error handling mechanisms (deepnoodle-ai#265)
1 parent e15cde4 commit 245e7b8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+1552
-654
lines changed

arg/args.go

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,34 @@
11
package arg
22

33
import (
4-
"fmt"
5-
64
"github.com/risor-io/risor/object"
75
)
86

97
func Require(funcName string, count int, args []object.Object) *object.Error {
108
nArgs := len(args)
119
if nArgs != count {
1210
if count == 1 {
13-
return object.Errorf(
14-
fmt.Sprintf("type error: %s() takes exactly 1 argument (%d given)",
15-
funcName, nArgs))
11+
return object.ArgsErrorf(
12+
"args error: %s() takes exactly 1 argument (%d given)",
13+
funcName, nArgs)
1614
}
17-
return object.Errorf(
18-
fmt.Sprintf("type error: %s() takes exactly %d arguments (%d given)",
19-
funcName, count, nArgs))
15+
return object.ArgsErrorf(
16+
"args error: %s() takes exactly %d arguments (%d given)",
17+
funcName, count, nArgs)
2018
}
2119
return nil
2220
}
2321

2422
func RequireRange(funcName string, min, max int, args []object.Object) *object.Error {
2523
nArgs := len(args)
2624
if nArgs < min {
27-
return object.Errorf(
28-
fmt.Sprintf("type error: %s() takes at least %d %s (%d given)",
29-
funcName, min, pluralize("argument", nArgs > 1), nArgs))
25+
return object.ArgsErrorf(
26+
"args error: %s() takes at least %d %s (%d given)",
27+
funcName, min, pluralize("argument", nArgs > 1), nArgs)
3028
} else if nArgs > max {
31-
return object.Errorf(
32-
fmt.Sprintf("type error: %s() takes at most %d %s (%d given)",
33-
funcName, max, pluralize("argument", nArgs > 1), nArgs))
29+
return object.ArgsErrorf(
30+
"args error: %s() takes at most %d %s (%d given)",
31+
funcName, max, pluralize("argument", nArgs > 1), nArgs)
3432
}
3533
return nil
3634
}

arg/args_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func TestRequire(t *testing.T) {
2828
},
2929
)
3030
require.NotNil(t, err)
31-
require.Equal(t, "type error: foo() takes exactly 1 argument (3 given)",
31+
require.Equal(t, "args error: foo() takes exactly 1 argument (3 given)",
3232
err.Message().Value())
3333

3434
err = arg.Require(
@@ -37,7 +37,7 @@ func TestRequire(t *testing.T) {
3737
[]object.Object{object.NewInt(1)},
3838
)
3939
require.NotNil(t, err)
40-
require.Equal(t, "type error: bar() takes exactly 2 arguments (1 given)",
40+
require.Equal(t, "args error: bar() takes exactly 2 arguments (1 given)",
4141
err.Message().Value())
4242
}
4343

@@ -64,7 +64,7 @@ func TestRequireRange(t *testing.T) {
6464
},
6565
)
6666
require.NotNil(t, err)
67-
require.Equal(t, "type error: foo() takes at most 3 arguments (4 given)",
67+
require.Equal(t, "args error: foo() takes at most 3 arguments (4 given)",
6868
err.Message().Value())
6969

7070
err = arg.RequireRange(
@@ -74,6 +74,6 @@ func TestRequireRange(t *testing.T) {
7474
[]object.Object{},
7575
)
7676
require.NotNil(t, err)
77-
require.Equal(t, "type error: foo() takes at least 1 argument (0 given)",
77+
require.Equal(t, "args error: foo() takes at least 1 argument (0 given)",
7878
err.Message().Value())
7979
}

0 commit comments

Comments
 (0)