Skip to content

Commit 6ff308f

Browse files
authored
Enhance the error message (#113)
* Reporting clear msg when something wrong * add error handle error message * refactor error message base on feedback from Frank. * lost one error message base on feedback * update error handling for schemas
1 parent e98bd6f commit 6ff308f

File tree

3 files changed

+13
-15
lines changed

3 files changed

+13
-15
lines changed

definition/definition_ser.go

+11-13
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,8 @@ func NewDefinition(rep *DefinitionRep) (def *Definition, err error) {
7474
for _, taskRep := range rep.Tasks {
7575

7676
task, err := createTask(def, taskRep, ef)
77-
7877
if err != nil {
79-
return nil, fmt.Errorf("create task [%s] error: %s", taskRep.ID, err.Error())
78+
return nil, fmt.Errorf("error creating task [%s] in flow [%s]: %s", taskRep.ID, rep.Name, err.Error())
8079
}
8180
def.tasks[task.id] = task
8281
}
@@ -88,7 +87,7 @@ func NewDefinition(rep *DefinitionRep) (def *Definition, err error) {
8887

8988
link, err := createLink(def.tasks, linkRep, id, ef)
9089
if err != nil {
91-
return nil, err
90+
return nil, fmt.Errorf("error creating link [%s] in flow [%s]: %s", linkRep.Name, rep.Name, err.Error())
9291
}
9392

9493
def.links[link.id] = link
@@ -107,9 +106,8 @@ func NewDefinition(rep *DefinitionRep) (def *Definition, err error) {
107106
for _, taskRep := range rep.ErrorHandler.Tasks {
108107

109108
task, err := createTask(def, taskRep, ef)
110-
111109
if err != nil {
112-
return nil, err
110+
return nil, fmt.Errorf("error creating task [%s] in flow [%s]'s error handler:%s", taskRep.ID, rep.Name, err.Error())
113111
}
114112
errorHandler.tasks[task.id] = task
115113
}
@@ -123,7 +121,7 @@ func NewDefinition(rep *DefinitionRep) (def *Definition, err error) {
123121

124122
link, err := createLink(errorHandler.tasks, linkRep, id+idOffset, ef)
125123
if err != nil {
126-
return nil, err
124+
return nil, fmt.Errorf("error creating link [%s] in flow [%s]'s error handler:%s", linkRep.Name, rep.Name, err.Error())
127125
}
128126
errorHandler.links[link.id] = link
129127
}
@@ -228,7 +226,7 @@ func createActivityConfig(task *Task, rep *activity.Config, ef expression.Factor
228226
for name, value := range rep.Settings {
229227
activityCfg.settings[name], err = metadata.ResolveSettingValue(name, value, mdSettings, ef)
230228
if err != nil {
231-
return nil, err
229+
return nil, fmt.Errorf("unable to resolve setting [%s]'s value [%s]:%s", name, value, err.Error())
232230
}
233231
}
234232
}
@@ -266,7 +264,7 @@ func createActivityConfig(task *Task, rep *activity.Config, ef expression.Factor
266264
}
267265
}
268266
}
269-
return nil, fmt.Errorf("convert value [%+v] to type [%s] error: %s", v, fieldMetaddata.Type(), err.Error())
267+
return nil, fmt.Errorf("unable to convert input [%s]'s value [%s] to type [%s]:%s", k, v, fieldMetaddata.Type(), err.Error())
270268
}
271269
input[k] = newVal
272270
} else {
@@ -291,7 +289,7 @@ func createActivityConfig(task *Task, rep *activity.Config, ef expression.Factor
291289
if ok {
292290
v, err = coerce.ToType(v, fieldMetaddata.Type())
293291
if err != nil {
294-
return nil, fmt.Errorf("convert value [%+v] to type [%s] error: %s", v, fieldMetaddata.Type(), err.Error())
292+
return nil, fmt.Errorf("unable to convert output [%s]'s value [%s] to type [%s]:%s", k, v, fieldMetaddata.Type(), err.Error())
295293
}
296294
output[k] = v
297295
} else {
@@ -329,7 +327,7 @@ func createActivityConfig(task *Task, rep *activity.Config, ef expression.Factor
329327
for name, def := range in {
330328
s, err := schema.FindOrCreate(def)
331329
if err != nil {
332-
return nil, err
330+
return nil, fmt.Errorf("unable to find/create input [%s]'s schema [%+v]:%s", name, def, err.Error())
333331
}
334332
activityCfg.inputSchemas[name] = s
335333
}
@@ -340,7 +338,7 @@ func createActivityConfig(task *Task, rep *activity.Config, ef expression.Factor
340338
for name, def := range out {
341339
s, err := schema.FindOrCreate(def)
342340
if err != nil {
343-
return nil, err
341+
return nil, fmt.Errorf("unable to find/create output [%s]'s schema [%+v]:%s", name, def, err.Error())
344342
}
345343
activityCfg.outputSchemas[name] = s
346344
}
@@ -476,7 +474,7 @@ func getLoopCfg(settings map[string]interface{}, taskType string, ef expression.
476474
lcd, err = getLoopCfgDef(setting)
477475
} else if setting, ok := settings["doWhile"]; ok {
478476
lcd, err = getLoopCfgDef(setting)
479-
if accum,ok := settings["accumulate"]; lcd != nil && ok {
477+
if accum, ok := settings["accumulate"]; lcd != nil && ok {
480478
lcd.Accumulate, _ = coerce.ToBool(accum)
481479
}
482480
} else {
@@ -511,7 +509,7 @@ func getLoopCfgDef(setting interface{}) (*loopCfgDef, error) {
511509
lcd.IterateOn = lcd.Iterate
512510
}
513511

514-
if lcd.Condition == "" && lcd.IterateOn == "" {
512+
if lcd.Condition == "" && lcd.IterateOn == "" {
515513
return nil, nil
516514
}
517515

support/manager.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ func materializeFlow(flowRep *definition.DefinitionRep) (*definition.Definition,
181181

182182
def, err := definition.NewDefinition(flowRep)
183183
if err != nil {
184-
return nil, fmt.Errorf("error unmarshalling flow: %s", err.Error())
184+
return nil, err
185185
}
186186

187187
//todo validate flow

support/resource.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func (*FlowLoader) LoadResource(config *resource.Config) (*resource.Resource, er
2323
var defRep *definition.DefinitionRep
2424
err := json.Unmarshal(flowDefBytes, &defRep)
2525
if err != nil {
26-
return nil, fmt.Errorf("error marshalling flow resource with id '%s', %s", config.ID, err.Error())
26+
return nil, fmt.Errorf("error loading flow resource with id '%s': %s", config.ID, err.Error())
2727
}
2828

2929
flow, err := materializeFlow(defRep)

0 commit comments

Comments
 (0)