diff options
author | Teddy Wing | 2017-08-10 23:38:50 +0200 |
---|---|---|
committer | Teddy Wing | 2017-08-10 23:50:26 +0200 |
commit | 465f32c216bd9a9bd695f0a2f0f3a08369c51e9a (patch) | |
tree | a6dc3a96f5cd84bc383f111111c0df52156f842b /src/Lib.hs | |
parent | a13026cbdf42ebc159b202588d10dffba47c1c1b (diff) | |
download | sorbot-465f32c216bd9a9bd695f0a2f0f3a08369c51e9a.tar.bz2 |
Try to set up error handling for GitHub Commit plugin
This doesn't really work, but I wanted to hold onto this step. I've been
reading about error handling, notably this article:
http://www.randomhacks.net/2007/03/10/haskell-8-ways-to-report-errors/
I kind of like the idea of just using `fail`, and being able to have
that set up some polymorphism to handle `Maybe`, `Either`, and `IO`
situations, but today read some literature that discouraged using fail,
since not all monads implement it.
Anyway, this code doesn't print out the error string like I intended it
to, so I guess I'll have to use `Either` instead.
Diffstat (limited to 'src/Lib.hs')
-rw-r--r-- | src/Lib.hs | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -2,6 +2,11 @@ module Lib ( someFunc ) where +import Control.Exception (catch) +-- import System.Environment +-- import System.IO +-- import System.IO.Error + import Database.SQLite.Simple import Message @@ -17,5 +22,8 @@ someFunc = do Just plugin = matchPlugin message dbConn <- open "db/sorbot_development.sqlite3" response <- performPlugin plugin message dbConn - putStrLn response + putStrLn response `catch` handleError close dbConn + +handleError :: IOError -> IO () +handleError err = putStrLn $ show err |