适用于企业应用程序的Java中的设计异常

我是java中的新异常。你能解释以下吗 1.何时必须使用CheckedExceptions? 2.何时必须使用UnCheckedExceptions? 3.我们什么时候应该去定制例外? 4.什么时候可以使用预定义的Java异常? 5.在为企业应用程序设计例外时需要了解什么? 提前致谢。