32 lines
741 B
GDScript3
Raw Permalink Normal View History

2025-01-11 00:25:52 +01:00
extends ThrowableBase
class_name RxBaseError
const BASE_ERROR_TAG = "Error"
var _msg : String
var _tags : ArraySet
func _init(msg : String, tag = "Error"):
self._msg = msg
self._tags = ArraySet.new()
self._tags.add(BASE_ERROR_TAG)
self._tags.add(tag)
func _to_string() -> String:
return "[" + self.tags().back() + "::" + self._msg + "]"
func get_message() -> String:
return self._msg
func throw(default = null) -> Variant:
return ErrorHandler.singleton().raise(self, default)
func tags() -> Array[String]:
var txs : Array[String] = []
for t in self._tags.to_list():
txs.append(t as String)
return txs
static func raise(default = null, msg : String = "An error occured"):
return GDRx.raise(RxBaseError.new(msg), default)