Error handling and testing.

Signed-off-by: Nigel <Nigel@192.168.1.103>