]> granicus.if.org Git - ejabberd/commitdiff
Better error handling in ejabberd_sql_pt
authorAlexey Shchepin <alexey@process-one.net>
Thu, 11 Feb 2016 17:01:32 +0000 (20:01 +0300)
committerAlexey Shchepin <alexey@process-one.net>
Tue, 1 Mar 2016 19:50:07 +0000 (22:50 +0300)
src/ejabberd_sql_pt.erl

index f9701a0bee3487a131817affdbc9893a5e72a1b1..23fc263ba27e9b09ca451eb9df41ecf96bf09a57 100644 (file)
@@ -177,8 +177,8 @@ parse_name(S, State) ->
     parse_name(S, [], State).
 
 parse_name([], Acc, State) ->
-                                                % todo
-    error;
+    throw({error, State#state.loc,
+           "expected ')', found end of string"});
 parse_name([$), T | S], Acc, State) ->
     Type =
         case T of
@@ -186,13 +186,13 @@ parse_name([$), T | S], Acc, State) ->
             $s -> string;
             $b -> boolean;
             _ ->
-                                                % todo
-                error
+                throw({error, State#state.loc,
+                       ["unknown type specifier '", T, "'"]})
         end,
     {lists:reverse(Acc), Type, S, State};
-parse_name([$) | _], Acc, State) ->
-                                                % todo
-    error;
+parse_name([$)], Acc, State) ->
+    throw({error, State#state.loc,
+           "expected type specifier, found end of string"});
 parse_name([C | S], Acc, State) ->
     parse_name(S, [C | Acc], State).