RuntimeException源码

throw new RuntimeException("Stub!");
几乎所有的android源码实现都有throw new RuntimeException("Stub!");这么一段代码,
我在自学android,发现看不太懂,举个简单的例子
public boolean startActivityIfNeeded(Intent intent, int requestCode) {
throw new RuntimeException("Stub!");
}
这个方法的返回值为boolean,是怎么返回的呢?

抛异常后下面就不执行了,,所以没写返回值

Stub顾名思义,就是桩的意思。表示这个方法先写上,但是没有实际的功能。这个函数也不会返回,因为会引发异常。

我们有两种实现软件的方法,一个是先进行顶层设计,然后再具体实现。另一个是先设计细节,然后把它们组合在一起成为整体。桩代码在软件设计的时候很常见,它就是第一种设计方式的体现,函数调用先写出来,同时编写一个桩,这个桩只是为了让编译通过。
丢出异常的目的是当实际要调用它的时候,防止设计者遗忘,丢出异常很明显提醒调用者,这个代码没有实现。

提示调用者该功能尚未实现,Stub只是留了个接口,并未真正实现功能。

你这个方法 是方法定义的时候要就返回一个Boolean的结果,但是当程序进去执行的时候,就发现了一个异常,就会跳出程序,这个程序,就完了。所以
这个程序如果想返回Boolean型结果,就要再异常前面返回,这个程序是一个不完整的程序,要求返回但还没有写返回语句

你这个方法 是方法定义的时候要就返回一个Boolean的结果,但是当程序进去执行的时候,就发现了一个异常,就会跳出程序,这个程序,就完了。所以
这个程序如果想返回Boolean型结果,就要再异常前面返回,这个程序是一个不完整的程序,要求返回但还没有写返回语句

RuntimeException属于运行异常,抛出来所以调用它的函数就不需要处理异常了。

If a new activity was launched then true is returned; otherwise false is returned and you must handle the Intent yourself.