added error handling
MD5: 407F988468879BB442DCA59CC8352DA3
SHA1: 7C9C5E3EBFA44CB2B43537A6C4BE118D30C2B08A
SHA256: A5CB57752A805AAE403D83A41205AC1E85443C2B00B712637DA58797139CDF7E
added error handling
MD5: 407F988468879BB442DCA59CC8352DA3
SHA1: 7C9C5E3EBFA44CB2B43537A6C4BE118D30C2B08A
SHA256: A5CB57752A805AAE403D83A41205AC1E85443C2B00B712637DA58797139CDF7E