diff --git a/src/net/detail/network-monitor-impl-noop.hpp b/src/net/detail/network-monitor-impl-noop.hpp
index 919d231..5b1a00d 100644
--- a/src/net/detail/network-monitor-impl-noop.hpp
+++ b/src/net/detail/network-monitor-impl-noop.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2013-2017 Regents of the University of California.
+/*
+ * Copyright (c) 2013-2018 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -33,7 +33,9 @@
 {
 public:
   explicit
-  NetworkMonitorImplNoop(boost::asio::io_service& io) = default;
+  NetworkMonitorImplNoop(boost::asio::io_service&)
+  {
+  }
 
   uint32_t
   getCapabilities() const final
diff --git a/src/net/detail/network-monitor-impl-osx.cpp b/src/net/detail/network-monitor-impl-osx.cpp
index 839faaa..c4e45e6 100644
--- a/src/net/detail/network-monitor-impl-osx.cpp
+++ b/src/net/detail/network-monitor-impl-osx.cpp
@@ -66,13 +66,13 @@
 #include <boost/asio/ip/address.hpp>
 #include <boost/asio/ip/udp.hpp>
 
+NDN_LOG_INIT(ndn.NetworkMonitor);
+
 namespace ndn {
 namespace net {
 
 using util::CFReleaser;
 
-NDN_LOG_INIT(ndn.NetworkMonitor);
-
 class IfAddrs : noncopyable
 {
 public:
diff --git a/src/net/network-monitor.cpp b/src/net/network-monitor.cpp
index 4874dd4..89af14a 100644
--- a/src/net/network-monitor.cpp
+++ b/src/net/network-monitor.cpp
@@ -24,6 +24,9 @@
 
 #include "network-monitor.hpp"
 #include "ndn-cxx-config.hpp"
+#include "../util/logger.hpp"
+
+#include "detail/network-monitor-impl-noop.hpp"
 
 #if defined(NDN_CXX_HAVE_OSX_FRAMEWORKS)
 #include "detail/network-monitor-impl-osx.hpp"
@@ -32,15 +35,29 @@
 #include "detail/network-monitor-impl-netlink.hpp"
 #define NETWORK_MONITOR_IMPL_TYPE NetworkMonitorImplNetlink
 #else
-#include "detail/network-monitor-impl-noop.hpp"
 #define NETWORK_MONITOR_IMPL_TYPE NetworkMonitorImplNoop
 #endif
 
+NDN_LOG_INIT(ndn.NetworkMonitor);
+
 namespace ndn {
 namespace net {
 
+static unique_ptr<NetworkMonitorImpl>
+makeNetworkMonitorImpl(boost::asio::io_service& io)
+{
+  try {
+    return make_unique<NETWORK_MONITOR_IMPL_TYPE>(io);
+  }
+  catch (const std::runtime_error& e) {
+    NDN_LOG_WARN("failed to initialize " BOOST_STRINGIZE(NETWORK_MONITOR_IMPL_TYPE) ": " << e.what());
+    // fallback to dummy implementation
+    return make_unique<NetworkMonitorImplNoop>(io);
+  }
+}
+
 NetworkMonitor::NetworkMonitor(boost::asio::io_service& io)
-  : NetworkMonitor(make_unique<NETWORK_MONITOR_IMPL_TYPE>(io))
+  : NetworkMonitor(makeNetworkMonitorImpl(io))
 {
 }
 
