62 lines
1.2 KiB
Smalltalk
62 lines
1.2 KiB
Smalltalk
"
|
|
I am the parent class of all WebDriver exceptions.
|
|
"
|
|
Class {
|
|
#name : #WDException,
|
|
#superclass : #Exception,
|
|
#instVars : [
|
|
'stacktrace',
|
|
'data'
|
|
],
|
|
#category : #'WebDriver-Exception'
|
|
}
|
|
|
|
{ #category : #testing }
|
|
WDException class >> matchesErrorCode: errCode [
|
|
^ self subclassResponsibility.
|
|
]
|
|
|
|
{ #category : #signaling }
|
|
WDException class >> raise: errDict [
|
|
|
|
"Initializes and populates the appropriate exception class."
|
|
|
|
| errorClass error message stacktrace data |
|
|
error := errDict at: #error.
|
|
message := errDict at: #message.
|
|
stacktrace := errDict at: #stacktrace.
|
|
data := errDict at: #data ifAbsent: nil.
|
|
errorClass := self subclasses
|
|
detect: [ :operationClass |
|
|
operationClass matchesErrorCode: error ]
|
|
ifNone: [ self ].
|
|
^ errorClass new
|
|
data: data;
|
|
stacktrace: stacktrace;
|
|
signal: message
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
WDException >> data [
|
|
|
|
^ data
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
WDException >> data: anObject [
|
|
|
|
data := anObject
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
WDException >> stacktrace [
|
|
|
|
^ stacktrace
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
WDException >> stacktrace: anObject [
|
|
|
|
stacktrace := anObject
|
|
]
|