suppress unused variable warning in SCOPE_EXIT
use nested exception to report fail in init phase
build with c++14 and libc++