import System;

class emptyString { 
 var customMessage:String;

 function emptyString(msg:String) {
  customMessage=msg;
 }
}

class outOfRange { 
 var customMessage:String;

 function outOfRange (msg:String) {
  customMessage=msg;
 }
}

function myFunc(s:String) {
 if (0==s.Length)
   throw new emptyString ("myFunc: Pusty ciąg nie może być parametrem");
 if ( s.Length > 10)
   throw new outOfRange ("myFunc: Przekroczona dopuszczalna długość ciągu");
 Console.WriteLine("s = {0}",s);
}

try {
  myFunc("");
}
catch(e:emptyString) {
  Console.WriteLine("Wystąpił wyjątek emptyString: " +
  "\"{0}\"\n",e.customMessage);
  try {
    myFunc("0123456789a");
    myFunc("0123456789ab");
  }
  catch (e:outOfRange) {
    Console.WriteLine("Wystąpił wyjątek outOfRange: " +
  "\"{0}\"\n",e.customMessage);
  }
  catch (e:emptyString) {
    Console.WriteLine("Wystąpił wyjątek emptyString: " +
  "\"{0}\"\n",e.customMessage);

  }
}
catch(e:Exception) {
  Console.WriteLine("Wystąpił wyjątek: \"{0}\"\n",e.Message);
}
