Q:

Types of Exception in Java

I am confused about types of exceptions in Java.  On many tutorial websites I have seen that two types of exception are there in java

Compile time exception
Run time exception 

But when I talked with some java masters, according to them there is no such thing like compile time exception.  They said it was compile time errors not exception, as well as I found nothing about compile time exception in Java docs.  But when I run following program
File f = new File("C:/Documents and Settings/satyajeet/Desktop/satya.txt");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String s = br.readLine();
System.out.println(s);

I got below output if try catch not provided. 
D:\jdk1.6.0_19\bin>javac Testing.java
Testing.java:7: unreported exception java.io. FileNotFoundException; must be caught or declared to be thrown
     FileReader fr=new FileReader(f);
                   ^
Testing.java:9: unreported exception java.io. IOException; must be caught or declared to be thrown
      String s=br.readLine();
                          ^
2 errors

So should I consider this Error or compile time exception? 

A:

There are 3 types of Throwables in Java.  

Checked Exceptions (Exception and down the chain, save for RuntimeException).  These are checked by the compiler and must be caught when thrown.  They represent an exceptional condition that is usually recoverable, e.g. when a referenced file is not found on the file system (see FileNotFoundException). 
Unchecked or runtime Exceptions (children of RuntimeException).  These can be thrown without catching.  They typically represent programming errors, for instance invoking methods on a null object (see NullPointerException).  
Errors.  These are unchecked as well.  They are thrown by the JVM when something very wrong is happening, typically beyond the developer's direct control (e.g. out of memory, see OutOfMemoryError).  Compiler errors are issued by the Java compiler when your code fails to compile, for various reason such as bad syntax, ambiguous calls, failing to catch a checked Exception, etc.  etc.  

A:

Any "famous website" that said that should not be read.   It is rubbish.   There is no such thing as a "compile time exception".   The Java Geeks you were talking to are correct1. 
Actually, you probably misread or misunderstood what you read on those "famous sites".   There are "compile time ERRORS" and "run time EXCEPTIONS".   
In your example, what you have is a couple of compile time error message, that are due to errors in your code.   The errors are there because your code does not handle exceptions correctly, but they are ERRORS nonetheless.   And they are detected at compile time ... by the Java compiler. 

1 ... and maybe it is time to stop using semi-derogatory labels like "geek" for them.   It sounds like they deserve some respect.