An f-sensitivity distance oracle for a weighted undirected graph G(V,E) is a data structure capable of answering restricted distance queries between vertex pairs, i.e., calculating distances on a subgraph avoiding some forbidden edges. This paper presents an efficiently constructible f-sensitivity distance oracle that given a triplet (s,t,F), where s and t are vertices and F is a set of forbidden edges such that |F| ≤ f, returns an estimate of the distance between s and t in G(V,E\F). For an integer parameter k ≥ 1, the size of the data structure is O(fkn1+1/k log(nW)), where W is the heaviest edge in G, the stretch (approximation ratio) of the returned distance is (8k-2)(f+1), and the query time is O(|F|·log2 n·loglogn· loglogd), where d is the distance between s and t in G(V,E\F). The paper also considers f-sensitive compact routing schemes, namely, routing schemes that avoid a given set of forbidden (or failed) edges. It presents a scheme capable of withstanding up to two edge failures. Given a message M destined to t at a source vertex s, in the presence of a forbidden edge set F of size |F| ≤ 2 (unknown to s), our scheme routes M from s to t in a distributed manner, over a path of length at most O(k) times the length of the optimal path (avoiding F). The total amount of information stored in vertices of G is O(kn1+1/k log(nW)logn).