error_report
A true alternative approach to handling errors in GoLang.
Table of Contents
Background
Install
go get github.com/Anadian/error_report/source
Usage
Example
package main;
import "github.com/Anadian/error_report/source";
func FunctionWhichReturnsAnErrorReport() error_report.ErrorReport_struct{
var return_report error_report.ErrorReport_struct = error_report.New( 1, map[string]interface{}{
"function_name": "FunctionWhichReturnsAnErrorReport",
"line_number": 8,
},
nil );
return return_report;
}
func ChecksAndWrapsAnErrorReport() error_report.ErrorReport_struct{
var this_function_error_report error_report.ErrorReport_struct;
var subroutine_error_report error_report.ErrorReport_struct = FunctionWhichReturnsAnErrorReport();
if( subroutine_error_report.IsError() == true ){ //Checks if an error ocurred.
if( subroutine_error_report.CodeEqual( 1 ) == true ){ //Checks the code.
this_function_error_report.Code = 2;
this_function_error_report.Data = map[string]interface{}{
"function_name": "ChecksAndWrapsAnErrorReport",
"line_number": 16,
}
this_function_error_report.Wrap( subroutine_error_report );
}
}
return this_function_error_report;
}
func main(){
error_report := ChecksAndWrapsAnErrorReport();
/*
error_report = {
Code: 2,
Data: {
"function_name": "ChecksAndWrapsAnErrorReport",
"line_number": 16
},
Wrapped -> { (a pointer to another ErrorReport_struct object.)
Code: 1,
Data: {
"function_name": "FunctionWhichReturnsAnErrorReport",
"line_number": 8
}
Wrapped -> nil
}
}
*/
}
For example usage of the whole API, checkout the test file.
API
Contributing
Changes are tracked in CHANGES.md.
License
MIT ©2019 Anadian
SEE LICENSE IN LICENSE