Skip to content

Commit 995d44c

Browse files
Merge pull request #73 from neo4j-php/issue_72_message_exception
extended MessageException
2 parents 2ac1a89 + c9afcae commit 995d44c

File tree

5 files changed

+52
-14
lines changed

5 files changed

+52
-14
lines changed

src/error/MessageException.php

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Bolt\error;
44

55
use Exception;
6+
use Throwable;
67

78
/**
89
* Class MessageException
@@ -13,5 +14,42 @@
1314
*/
1415
class MessageException extends Exception
1516
{
17+
/**
18+
* @var string
19+
*/
20+
private $serverMessage;
21+
22+
/**
23+
* @var string
24+
*/
25+
private $serverCode;
26+
27+
/**
28+
* @param string $message
29+
* @param string $code
30+
* @param Throwable|null $previous
31+
*/
32+
public function __construct(string $message, string $code, ?Throwable $previous = null)
33+
{
34+
$this->serverCode = $code;
35+
$this->serverMessage = $message;
36+
parent::__construct($message . ' (' . $code . ')', 0, $previous);
37+
}
38+
39+
/**
40+
* @return string
41+
*/
42+
public function getServerCode(): string
43+
{
44+
return $this->serverCode;
45+
}
46+
47+
/**
48+
* @return string
49+
*/
50+
public function getServerMessage(): string
51+
{
52+
return $this->serverMessage;
53+
}
1654

1755
}

src/protocol/V1.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public function init(...$args): array
4242
if ($signature == self::FAILURE) {
4343
// ..but must immediately close the connection after the failure has been sent.
4444
$this->connection->disconnect();
45-
throw new MessageException($message['message'] . ' (' . $message['code'] . ')');
45+
throw new MessageException($message['message'], $message['code']);
4646
}
4747

4848
return $message;
@@ -68,7 +68,7 @@ public function run(...$args): array
6868

6969
if ($signature == self::FAILURE) {
7070
$this->ackFailure();
71-
throw new MessageException($message['message'] . ' (' . $message['code'] . ')');
71+
throw new MessageException($message['message'], $message['code']);
7272
}
7373

7474
if ($signature == self::IGNORED) {
@@ -100,7 +100,7 @@ public function pullAll(...$args): array
100100
if ($signature == self::FAILURE) {
101101
$this->ackFailure();
102102
$last = array_pop($output);
103-
throw new MessageException($last['message'] . ' (' . $last['code'] . ')');
103+
throw new MessageException($last['message'], $last['code']);
104104
}
105105

106106
if ($signature == self::IGNORED) {
@@ -126,7 +126,7 @@ public function discardAll(...$args): array
126126

127127
if ($signature == self::FAILURE) {
128128
$this->ackFailure();
129-
throw new MessageException($message['message'] . ' (' . $message['code'] . ')');
129+
throw new MessageException($message['message'], $message['code']);
130130
}
131131

132132
if ($signature == self::IGNORED) {
@@ -151,7 +151,7 @@ private function ackFailure()
151151

152152
if ($signature == self::FAILURE) {
153153
$this->connection->disconnect();
154-
throw new MessageException($message['message'] . ' (' . $message['code'] . ')');
154+
throw new MessageException($message['message'], $message['code']);
155155
}
156156
}
157157

@@ -170,7 +170,7 @@ public function reset(): array
170170

171171
if ($signature == self::FAILURE) {
172172
$this->connection->disconnect();
173-
throw new MessageException($message['message'] . ' (' . $message['code'] . ')');
173+
throw new MessageException($message['message'], $message['code']);
174174
}
175175

176176
return $message;

src/protocol/V3.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public function hello(...$args): array
4747

4848
if ($signature == self::FAILURE) {
4949
$this->connection->disconnect();
50-
throw new MessageException($message['message'] . ' (' . $message['code'] . ')');
50+
throw new MessageException($message['message'], $message['code']);
5151
}
5252

5353
return $message;
@@ -79,7 +79,7 @@ public function run(...$args): array
7979
$message = $this->read($signature);
8080

8181
if ($signature == self::FAILURE) {
82-
throw new MessageException($message['message'] . ' (' . $message['code'] . ')');
82+
throw new MessageException($message['message'], $message['code']);
8383
}
8484

8585
if ($signature == self::IGNORED) {
@@ -106,7 +106,7 @@ public function begin(...$args): array
106106
$message = $this->read($signature);
107107

108108
if ($signature == self::FAILURE) {
109-
throw new MessageException($message['message'] . ' (' . $message['code'] . ')');
109+
throw new MessageException($message['message'], $message['code']);
110110
}
111111

112112
if ($signature == self::IGNORED) {
@@ -130,7 +130,7 @@ public function commit(): array
130130
$message = $this->read($signature);
131131

132132
if ($signature == self::FAILURE) {
133-
throw new MessageException($message['message'] . ' (' . $message['code'] . ')');
133+
throw new MessageException($message['message'], $message['code']);
134134
}
135135

136136
if ($signature == self::IGNORED) {
@@ -154,7 +154,7 @@ public function rollback(): array
154154
$message = $this->read($signature);
155155

156156
if ($signature == self::FAILURE) {
157-
throw new MessageException($message['message'] . ' (' . $message['code'] . ')');
157+
throw new MessageException($message['message'], $message['code']);
158158
}
159159

160160
if ($signature == self::IGNORED) {

src/protocol/V4.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public function pull(...$args): array
5252

5353
if ($signature == self::FAILURE) {
5454
$last = array_pop($output);
55-
throw new MessageException($last['message'] . ' (' . $last['code'] . ')');
55+
throw new MessageException($last['message'], $last['code']);
5656
}
5757

5858
if ($signature == self::IGNORED) {
@@ -91,7 +91,7 @@ public function discard(...$args): array
9191
$message = $this->read($signature);
9292

9393
if ($signature == self::FAILURE) {
94-
throw new MessageException($message['message'] . ' (' . $message['code'] . ')');
94+
throw new MessageException($message['message'], $message['code']);
9595
}
9696

9797
if ($signature == self::IGNORED) {

src/protocol/V4_3.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public function route(...$args): array
3737
$message = $this->read($signature);
3838

3939
if ($signature === self::FAILURE) {
40-
throw new MessageException($message['message'] . ' (' . $message['code'] . ')');
40+
throw new MessageException($message['message'], $message['code']);
4141
}
4242

4343
if ($signature == self::IGNORED) {

0 commit comments

Comments
 (0)