If you are catching yourself an Exception like you do with you catch statement you won't let Slim handle the Exception for you so you will never enter your custom error method.
You can see official statement about error handling here and also check the code source here at line 1405.
So you have 2 choices here :
1) not try/catch your exception and let all exceptions be handled by Slim Framework
2) try/catch and throw a new Exception in your catch ... (not sure if its very useful)
Also consider the debug flag when bootstrapping the app, if true you will have a complete stacktrace of your exception, if false you need to display something nice to user in your "error" method.
You also can write your own log write so you will log Exception by yourself. More infos here