a demo for self exception