[glibmm] tests/glibmm_tls_client: Catch exceptions from more function calls
- From: Kjell Ahlstedt <kjellahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glibmm] tests/glibmm_tls_client: Catch exceptions from more function calls
- Date: Wed, 9 Dec 2020 14:42:48 +0000 (UTC)
commit 5a3d08fc1f306449a06d75bf330790d947812ee1
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date: Wed Dec 9 15:40:54 2020 +0100
tests/glibmm_tls_client: Catch exceptions from more function calls
Gio::Socket::create() can throw an exception. Put it in a try block.
See #84
tests/giomm_tls_client/main.cc | 24 ++++++++++++++++++------
1 file changed, 18 insertions(+), 6 deletions(-)
---
diff --git a/tests/giomm_tls_client/main.cc b/tests/giomm_tls_client/main.cc
index 703de755..9ec2ea3c 100644
--- a/tests/giomm_tls_client/main.cc
+++ b/tests/giomm_tls_client/main.cc
@@ -76,19 +76,31 @@ main(int, char**)
std::cout << "First address of test host is " << first_inet_address->to_string() << "."
<< std::endl;
- auto socket = Gio::Socket::create(
- first_inet_address->get_family(), Gio::Socket::Type::STREAM, Gio::Socket::Protocol::TCP);
-
- auto address = Gio::InetSocketAddress::create(first_inet_address, 443);
+ Glib::RefPtr<Gio::Socket> socket;
+ try
+ {
+ socket = Gio::Socket::create(
+ first_inet_address->get_family(), Gio::Socket::Type::STREAM, Gio::Socket::Protocol::TCP);
+ }
+ catch (const Gio::Error& ex)
+ {
+ std::cout << "Could not create socket. Exception: " << ex.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ Glib::RefPtr<Gio::InetSocketAddress> address;
try
{
+ address = Gio::InetSocketAddress::create(first_inet_address, 443);
socket->connect(address);
}
catch (const Gio::Error& ex)
{
- std::cout << "Could not connect socket to " << address->get_address()->to_string() << ":"
- << address->get_port() << ". Exception: " << ex.what() << std::endl;
+ if (!address)
+ std::cout << "Could not create socket address. Exception: " << ex.what() << std::endl;
+ else
+ std::cout << "Could not connect socket to " << address->get_address()->to_string() << ":"
+ << address->get_port() << ". Exception: " << ex.what() << std::endl;
return EXIT_FAILURE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]