Skip to content

A true alternative approach to handling errors in GoLang.

License

Notifications You must be signed in to change notification settings

Anadian/error_report

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

error_report

standard-readme compliant Semantic Versioning 2.0.0 License GoDoc Build Status Coverage Status

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

About

A true alternative approach to handling errors in GoLang.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published