[Soot-list] Exception Analysis

irem at nada.kth.se irem at nada.kth.se
Wed Oct 17 10:18:51 EDT 2007


Hello!

I am using soot to perform control flow analysis. I use call graph and
control flow graph given by soot to produce a special kind of control flow
graph in my own format. I am using soot 2.2.4 version.


In order to check if an exceptional termination is possible at a program
point, I use  getExceptionDests to get the types of exceptions that can be
thrown by the Unit in question in the ExceptionalUnitGraph. My problem is
that it appears as if *all* program points can raise an exception of type
Throwable. This in turn makes my own analysis imprecise.

For instance:

public void method(boolean b){
try {
     if (b)
        {int a = 3/0;}
     else
        {throw new ArithmeticException();}
}
catch (ArithmeticException e){
     method(false);
}
}

For this example, at certain places I would have expected only
ArithmeticException to be raised.

I am wondering if I am skipping something here or if the analysis is meant
to be this way.

Thanks,

Irem Aktug
KTH, Sweden







More information about the Soot-list mailing list