Use custom exception for keychain errors