32 lines
741 B
GDScript
32 lines
741 B
GDScript
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)
|