Summary
The ExecuteError exception class is raised whenever a geoprocessing tool encounters an error.
Code sample
The ExecuteError class is used below to specifically handle any geoprocessing tool errors that result from CopyFeatures.
import arcpy
in_features = "c:/base/transport.gdb/roads"
try:
    # Note: CopyFeatures will always fail if the input and output are
    # the same feature class
    arcpy.management.CopyFeatures(in_features, in_features)
except arcpy.ExecuteError:
    print(arcpy.GetMessages())