Question: I am having great confusion while working with if/else statements, i have constructed a program to decide which of three provided integers is the maximum... i wrote the following code:

```
int a,b,c,max;

cout<<"Please enter value 1: \t";
cin>>a;

cout<<"Please enter value 2: \t";
cin>>b;

cout<<"Please enter value 3: \t";
cin>>c;

if(a>b)
    {
    if(a>c)
    max=a;
        }

else if(b>a)
    {
    if(b>c)
    max=b;
    }

else if(c>a)                 //here comes the problem
    {
    if(c>b)
    max=c;
    }

cout<<"The Max value among the given value is:\t"<<max;

```

I inputted the values 12 for int a, 13 for int b, and 14 for int c, (meaning if i am providing largest value at third instance) it is showing me a garbage value as the maximum (in spite of 14), what might be the problem there please???? I am using Dev C++ 5.5.1 On 32 bit windows 7.

Answer: 
The error is because of the empty try {} catch {} block in the main method of StreamCopier.java. Remove the empty try{} catch{} block and then try. It should work.

```
public static void main (String[] args)  {
            try  {

            } catch (IOException e) {System.err.println(e);} // here is the problem
}

```
The `try` block is empty, apparently because you haven't written the code that goes in it yet. The Java compiler stupidly complains if there is a `catch` block and [it thinks] the exception cannot be thrown. This is one of the annoying qualities of Java's [checked exceptions](https://stackoverflow.com/questions/613954/the-case-against-checked-exceptions).

Simply continue to fill in the `try` block, and the error will go away. You can insert a dummy `copy(null, null);` inside it to make the compiler shut up.