Welcome to the Ranch bhatti.
Runtime exceptions are supposed to represent programmers bugs. For instance accessing a non existing array element -ArrayIndexOutOfBoundException- , or calling a method with a non valid argument -IllegalArgumentException-
Because they are possible to ocurr at so many places in the code, it is not feasible that all the expressions possibly throwing them are to be placed within a try clause. Besides, given that they represent programmer errors, the programmer itself should round them in a try clause if they were checked ones. But, if the programmer knew that a runtine exception (programmer error) is going to result from an expression, why placing it within a try clause?, Just correct the expression to avoid it.
Checked exceptions, on the other hand, represent non programmers errors, for which is valid to try to recover. Tipically accessing IO could fail in a file. The programmer is obliged for the compiler to manage the possibility of failure; either in a inmediately enclosing try/catch clause, or by declaring the exception to be thrown, in a calling method of the method where the exception was thrown.