allow ttl to be null and dont try catch everything

Allow TTL to be `null` makes this module possible to become a persistent key-value storage or cache backend. 
Certain errors should be thrown out. Don't try catch everything.