scope exception do not rise

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Nov 5 10:37:26 PST 2014


On 11/05/2014 06:01 AM, Suliman wrote:

 > I can't understand what I am missing. Try-catch block also do not handle
 > exception:

I does. This turned out to be very tricky for me. :)

 > void main()
 > {
 >      string fname = "app.d1"; //file name with error
 >      string current_folder = (getcwd() ~"\\");
 >      writeln(current_folder);
 >      openFile(fname, current_folder);
 > }
 >
 > void openFile(string fname, string current_folder)
 > {
 >          try
 >          {
 >              auto file = readText(current_folder ~ fname);
 >              if(exists(current_folder ~ fname))
 >              scope(success)
 >                  writeln("success");

Unrelated to the problem, but did you really want that scope(success) 
under the if statement?

 >          }
 >
 >          catch(Exception e)
 >          {
 >              writeln(e); //what class of error I am handling? any?
 >          }

Replace that with something like writeln("caught") and you will see that 
it is indeed caught. :) Printing the exception mimicks the default 
behavior and you (and I) think that the exception is not caught. :)

Ali



More information about the Digitalmars-d-learn mailing list