28 lines
		
	
	
		
			546 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			546 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package main
 | |
| 
 | |
| type Error int
 | |
| 
 | |
| const (
 | |
| 	ErrorUnknownOpcode Error = iota
 | |
| 	ErrorDivideByZero
 | |
| 	ErrorWrongOperandCount
 | |
| 	ErrorNegativeShiftAmount
 | |
| 	ErrorWrongType
 | |
| )
 | |
| 
 | |
| func (err Error) Error () (description string) {
 | |
| 	switch err {
 | |
| 	case ErrorUnknownOpcode:
 | |
| 		description = "unknown opcode"
 | |
| 	case ErrorDivideByZero:
 | |
| 		description = "division by zero"
 | |
| 	case ErrorWrongOperandCount:
 | |
| 		description = "wrong operand amount"
 | |
| 	case ErrorNegativeShiftAmount:
 | |
| 		description = "negative shift amount"
 | |
| 	case ErrorWrongType:
 | |
| 		description = "wrong type"
 | |
| 	}
 | |
| 	return
 | |
| }
 |