ObjFW  Diff

Differences From Artifact [aea20b11c3]:

To Artifact [6f870ca40c]:

  • File src/exceptions/OFConnectionFailedException.m — part of check-in [3d16a30f41] at 2013-06-22 12:12:36 on branch trunk — Rework exceptions.

    This mostly removes the argument for the class in which the exception
    occurred. As backtraces were recently added for all platforms, the
    passed class does not give any extra information on where the exception
    occurred anymore.

    This also removes a few other arguments which were not too helpful. In
    the past, the idea was to pass as many arguments as possible so that it
    is easier to find the origin of the exception. However, as backtraces
    are a much better way to find the origin, those are not useful anymore
    and just make the exception more cumbersome to use. The rule is now to
    only pass arguments that might help in recovering from the exception or
    provide information that is otherwise not easily accessible. (user: js, size: 1868) [annotate] [blame] [check-ins using]


21
22
23
24
25
26
27
28

29
30
31


32
33
34



35
36
37
38
39

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54



55
56

57
58
59
60

61
62
63
64
65
66
67
68
69
70
71
72
73
74


75
76
77
78
79
80
81
82
83
84


85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100





101
102
103
104
105
106
21
22
23
24
25
26
27

28



29
30
31


32
33
34


35
36

37
38
39
40
41
42
43
44
45
46
47
48




49
50
51
52

53
54
55

56
57
58
59
60
61
62
63
64
65
66
67
68
69


70
71
72
73
74
75
76
77
78
79


80
81





82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103







-
+
-
-
-
+
+

-
-
+
+
+
-
-


-
+











-
-
-
-
+
+
+

-
+


-

+












-
-
+
+








-
-
+
+
-
-
-
-
-











+
+
+
+
+






#import "OFConnectionFailedException.h"
#import "OFString.h"
#import "OFTCPSocket.h"

#import "common.h"

@implementation OFConnectionFailedException
+ (instancetype)exceptionWithClass: (Class)class
+ (instancetype)exceptionWithHost: (OFString*)host
			    socket: (OFTCPSocket*)socket
			      host: (OFString*)host
			      port: (uint16_t)port
			     port: (uint16_t)port
			   socket: (OFTCPSocket*)socket
{
	return [[[self alloc] initWithClass: class
				     socket: socket
	return [[[self alloc] initWithHost: host
				      port: port
				    socket: socket] autorelease];
				       host: host
				       port: port] autorelease];
}

- initWithClass: (Class)class
- init
{
	@try {
		[self doesNotRecognizeSelector: _cmd];
	} @catch (id e) {
		[self release];
		@throw e;
	}

	abort();
}

- initWithClass: (Class)class
	 socket: (OFTCPSocket*)socket
	   host: (OFString*)host
	   port: (uint16_t)port
- initWithHost: (OFString*)host
	  port: (uint16_t)port
	socket: (OFTCPSocket*)socket
{
	self = [super initWithClass: class];
	self = [super init];

	@try {
		_socket = [socket retain];
		_host   = [host copy];
		_socket = [socket retain];
		_port   = port;
		_errNo  = GET_SOCK_ERRNO;
	} @catch (id e) {
		[self release];
		@throw e;
	}

	return self;
}

- (void)dealloc
{
	[_socket release];
	[_host release];
	[_host release];
	[_socket release];

	[super dealloc];
}

- (OFString*)description
{
	return [OFString stringWithFormat:
	    @"A connection to %@ on port %" @PRIu16 @" could not be "
	    @"established in class %@! " ERRFMT, _host, _port, _inClass,
	    ERRPARAM];
	    @"established in socket of type %@! " ERRFMT, _host, _port,
	    [_socket class], ERRPARAM];
}

- (OFTCPSocket*)socket
{
	OF_GETTER(_socket, false)
}

- (OFString*)host
{
	OF_GETTER(_host, false)
}

- (uint16_t)port
{
	return _port;
}

- (OFTCPSocket*)socket
{
	OF_GETTER(_socket, false)
}

- (int)errNo
{
	return _errNo;
}
@end