# Difference between FINISHED and CANCELLED as return values

What is the difference between

return {'FINISHED'}


and

return {'CANCELLED'}


in an operator?

For example, lets assume I have a simple non modal operator which places a cube in the scene and returns {'CANCELLED'} afterwards. Are there any consequences or further impact? My guess was that the cube would be removed from the scene (like an undo) because of potential errorneous behavior. But it stays there just like everythings works fine

result = bpy.ops.object.delete()
if result == {'FINISHED'}:  # Can also do: if 'FINISHED' in result: