add cache with exception