Software-defined networking offers numerous benefits against the legacy networking systems through simplifying the process of network management and reducing the cost of network configuration. Currently, the management of failures in the data plane is limited to two mechanisms: proactive and reactive. Such failure recovery techniques are activated after occurrences of failures. Therefore, packet loss is highly likely to occur as a result of service disruption and unavailability. This issue is not only related to the slow speed of recovery mechanisms, but also the delay caused by the failure detection process. In this paper, we define a new approach to the management of fault tolerance in software-defined networks where the goal is to eliminate the convergence process altogether, rather than speed up failure detection and recovery. We propose a new framework, called Smart Routing, which works based on the forewarning signs on failures in order to compute alternative paths and isolate the risky links from the routing tables of the data plane devices. We validate our framework through a set of experiments that demonstrate how the underlying model runs.