mirror of
https://github.com/deavmi/birchwood
synced 2024-09-20 12:23:32 +02:00
Exceptions
- Added default auxillary information strings - Use the default auxillary strings if the provided one is empty
This commit is contained in:
parent
1697331e00
commit
fda11b5699
@ -5,13 +5,29 @@ module birchwood.client.exceptions;
|
|||||||
|
|
||||||
import std.conv : to;
|
import std.conv : to;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Associated error strings which are used
|
||||||
|
* if a custom auxillary information is not
|
||||||
|
* passed in.
|
||||||
|
*
|
||||||
|
* TODO: Ensure each ErrorTYpe has a corresponding
|
||||||
|
* string here
|
||||||
|
*/
|
||||||
|
private string[] errorStrings = [
|
||||||
|
"The provided connection information is incorrect",
|
||||||
|
"Already connected to server",
|
||||||
|
"Connection to the server failed",
|
||||||
|
"The IRC params are empty",
|
||||||
|
"The provided channel name is invalid",
|
||||||
|
"The porvided nickname is invalid",
|
||||||
|
"The message contains illegal characters",
|
||||||
|
"The encoded IRC frame is too long to send"
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The type of error to be used
|
* The type of error to be used
|
||||||
* with BirchwoodException
|
* with BirchwoodException
|
||||||
*
|
|
||||||
* TODO: Make this STRING and associate a message with it
|
|
||||||
* but make it include the enum name and corresponding value
|
|
||||||
* when throwin an exception
|
|
||||||
*/
|
*/
|
||||||
public enum ErrorType
|
public enum ErrorType
|
||||||
{
|
{
|
||||||
@ -88,7 +104,7 @@ public class BirchwoodException : Exception
|
|||||||
*/
|
*/
|
||||||
this(ErrorType errType)
|
this(ErrorType errType)
|
||||||
{
|
{
|
||||||
super("BirchwoodError("~to!(string)(errType)~")"~(auxInfo.length == 0 ? "" : " "~auxInfo));
|
super("BirchwoodError("~to!(string)(errType)~")"~(auxInfo.length == 0 ? errorStrings[errType] : " "~auxInfo));
|
||||||
this.errType = errType;
|
this.errType = errType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user