From f08a4da60aad13cf99314223d86f86bb719709bc Mon Sep 17 00:00:00 2001 From: Jeremy Woertink Date: Mon, 17 Feb 2020 13:04:23 -0800 Subject: [PATCH] Add NoResultsError (#121) --- spec/statement_spec.cr | 9 +++++++++ src/db/error.cr | 4 ++++ src/db/statement.cr | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/spec/statement_spec.cr b/spec/statement_spec.cr index f70937e..bf63f80 100644 --- a/spec/statement_spec.cr +++ b/spec/statement_spec.cr @@ -208,4 +208,13 @@ describe DB::Statement do db.pool.is_available?(DummyDriver::DummyConnection.connections.first) end end + + it "raises NoResultsError for scalar" do + with_dummy_connection do |cnn| + stmt = cnn.prepared "" + expect_raises DB::NoResultsError do + stmt.scalar "SELECT LIMIT 0" + end + end + end end diff --git a/src/db/error.cr b/src/db/error.cr index c8a81f2..a304310 100644 --- a/src/db/error.cr +++ b/src/db/error.cr @@ -29,4 +29,8 @@ module DB class Rollback < Error end + + # Raised when a scalar query returns no results. + class NoResultsError < Error + end end diff --git a/src/db/statement.cr b/src/db/statement.cr index 5c3f5e3..807b42a 100644 --- a/src/db/statement.cr +++ b/src/db/statement.cr @@ -15,7 +15,7 @@ module DB end end - raise "no results" + raise NoResultsError.new("no results") end # See `QueryMethods#query`