>>8
似たようなデリゲート型をたくさん宣言しなくならなくちゃ
ならないような状況になれば分かるかと

>>9
MethodInvoker mi = M1;
mi += M2;
mi += M3;
mi.Invoke();

void M1()
{
MessageBox.Show( "Test1" );
}
void M2()
{
throw new Exception();
}
void M3()
{
MessageBox.Show( "Test3" );
}