Initial Import: Database transaction handling.

Initial Import: Error handling using ewf error library.
Added a CMS_ERROR_FILTER as part of registered filters of CMS_SERVICE
This commit is contained in:
jvelilla
2014-10-09 10:01:49 -03:00
parent 36dc48125c
commit 8d79447cf8
20 changed files with 302 additions and 167 deletions

View File

@@ -0,0 +1,23 @@
note
description: "Error from database"
date: "$Date: 2013-08-08 16:39:49 -0300 (ju. 08 de ago. de 2013) $"
revision: "$Revision: 195 $"
class
DATABASE_ERROR
inherit
ERROR_CUSTOM
create
make_from_message
feature {NONE} -- Init
make_from_message (a_m: like message; a_code: like code)
-- Create from `a_m'
do
make (a_code, once "Database Error", a_m)
end
end

View File

@@ -0,0 +1,35 @@
note
description: "Database error handler"
date: "$Date: 2013-08-08 16:39:49 -0300 (ju. 08 de ago. de 2013) $"
revision: "$Revision: 195 $"
class
DATABASE_ERROR_HANDLER
inherit
ERROR_HANDLER
create
make
feature -- Error operation
add_database_error (a_message: READABLE_STRING_32; a_code: INTEGER)
-- Add a database error.
local
l_error: DATABASE_ERROR
do
create l_error.make_from_message (a_message, a_code)
add_error (l_error)
end
add_database_no_change_error (a_message: READABLE_STRING_32; a_code: INTEGER)
-- Add a database error.
local
l_error: DATABASE_NO_CHANGE_ERROR
do
create l_error.make_from_message (a_message, a_code)
add_error (l_error)
end
end

View File

@@ -0,0 +1,39 @@
note
description: "Shared error handler for database"
date: "$Date: 2013-08-08 16:39:49 -0300 (ju. 08 de ago. de 2013) $"
revision: "$Revision: 195 $"
class
SHARED_ERROR_HANDLER
inherit
SHARED_LOGGER
feature -- Access
database_error_handler: DATABASE_ERROR_HANDLER
-- Error handler.
once
create Result.make
end
feature -- Status Report
has_error: BOOLEAN
-- Has error?
do
Result := database_error_handler.has_error
end
feature -- Helper
exception_as_error (a_e: like {EXCEPTION_MANAGER}.last_exception)
-- Record exception as an error.
do
if attached a_e as l_e and then attached l_e.exception_trace as l_trace then
database_error_handler.add_error_details (l_e.code, once "Exception", l_trace.as_string_32)
end
end
end