Try-catch旨在帮助进行异常处理.这意味着它将以某种方式帮助我们的系统更加健壮:尝试从意外事件中恢复.
我们怀疑在执行和指令(发送消息)时可能会发生某些事情,因此它会被包含在try中.如果发生几乎意外的事情,我们可以做点什么:我们写下了捕获.我认为我们没有打电话来记录异常.我认为catch块意味着让我们有机会从错误中恢复.
现在,假设我们可以从错误中恢复,因为我们可以修复错误.重做是非常好的:
try{ some_instruction(); }
catch (NearlyUnexpectedException e){
fix_the_problem();
retry;
}
Run Code Online (Sandbox Code Playgroud)
这将很快落入永恒循环,但是假设fix_the_problem返回true,那么我们重试.鉴于Java中没有这样的东西,你将如何解决这个问题?解决这个问题的最佳设计代码是什么?
这就像一个哲学问题,因为我已经知道我所要求的并不是Java直接支持的.
(这是一个多部分的问题,我将尽力总结这个场景.)
我们目前正在构建一个响应式Web应用程序(新闻阅读器),允许用户在选项卡式内容之间滑动,以及在每个选项卡式内容中垂直滚动.
解决此问题的常见方法是使用一个包装器div填充浏览器视口,设置overflow为hidden或auto,然后在其中水平和/或垂直滚动.
这种方法很好,但有一个主要缺点:由于文档的高度与浏览器视口完全相同,因此移动浏览器不会隐藏地址栏/导航菜单.
有许多hacks和视口属性使我们能够获得更多的屏幕空间,但没有一个像minimal-ui(在iOS 7.1中引入)那样有效.
昨天有消息称iOS 8 beta4已从minimal-uiMobile Safari中删除(参见iOS 8发行说明中的 Webkit部分),这让我们感到奇怪:
Q1.是否仍然可以隐藏Mobile Safari上的地址栏?
据我们所知,iOS的7 不再响应的window.scrollTo破解,这意味着我们不得不忍受较小的屏幕空间,除非我们采取垂直布局或使用mobile-web-app-capable.
Q2.是否仍然可以获得类似的软全屏体验?
通过软全屏我真的意味着不使用mobile-web-app-capable元标记.
我们的Web应用程序可以访问,任何页面都可以使用本机浏览器菜单加入书签或共享.通过添加mobile-web-app-capable我们阻止用户调用这样的菜单(当它保存到主屏幕时),这会混淆和对抗用户.
minimal-ui曾经是中间地带,默认隐藏菜单但是通过点击可以访问它 - 虽然Apple可能已经删除它由于其他可访问性问题(例如用户不知道点击激活菜单的位置).
Q3.全屏体验值得一试吗?
似乎全屏API不会很快进入iOS,但即便如此,我也看不到菜单是如何保持可访问的(Android上的Chrome也是如此).
在这种情况下,也许我们应该保持原样的移动游猎,并考虑视口高度(对于iPhone 5 +,它是460 = 568 - 108,其中108包括操作系统栏,地址栏和导航菜单;对于iPhone 4或年纪大了,它是372).
很想听到一些替代方案(除了构建本机应用程序).
我开发了自己的应用程序并通过Google Play发布了它以进行alpha测试.作为测试人员之一,我获得了一个选择加入链接,我作为测试人员登录.之后,我希望通过手机上的Play商店直接用我的手机下载应用程序.但似乎结果是,我必须到应用程序的网络配置文件,然后从那里点击下载; 只有这样Play商店才能将应用程序下载到我的手机上.
我想让其他alpha测试人员参与其中,我希望能让他们更轻松地完成这个过程.有没有更简单的方法?就像在,一旦他们选择加入,我希望他们只使用他们的Android手机下载应用程序,就像他们任何其他应用程序一样.有办法吗?
澄清:
我不是在寻找Google Play的替代品
我已经完成了Google Group创作过程.我的问题是关于团体成员选择加入后会发生什么.他们可以直接使用手机(在手机上播放应用程序)还是必须从网站上下载?到目前为止,我还没有成功使用play-app.
我正在尝试创建一个由10个整数组成的程序,这些整数都具有随机值,到目前为止一直很好.
但是,现在我需要按照从最低到最高值的顺序对它们进行排序,然后将其打印到屏幕上,我将如何进行此操作?
(对不起因为程序那么多代码很小,我对循环不太好,刚开始使用Java)
public static void main(String args[])
{
int [] array = new int[10];
array[0] = ((int)(Math.random()*100+1));
array[1] = ((int)(Math.random()*100+1));
array[2] = ((int)(Math.random()*100+1));
array[3] = ((int)(Math.random()*100+1));
array[4] = ((int)(Math.random()*100+1));
array[5] = ((int)(Math.random()*100+1));
array[6] = ((int)(Math.random()*100+1));
array[7] = ((int)(Math.random()*100+1));
array[8] = ((int)(Math.random()*100+1));
array[9] = ((int)(Math.random()*100+1));
System.out.println(array[0] +" " + array[1] +" " + array[2] +" " + array[3]
+" " + array[4] +" " + array[5]+" " + array[6]+" " + array[7]+" "
+ array[8]+" " + array[9] );
}
Run Code Online (Sandbox Code Playgroud) 我正在看PyPy,我只是想知道为什么它没有被采用到主线Python发行版中.不会像JIT编译和更低的内存占用大大提高所有Python代码的速度吗?
简而言之,PyPy的主要缺点是什么导致它仍然是一个单独的项目?
在我的HTML页面上,我希望能够"转到"/"滚动到"/"关注"页面上的元素.
通常情况下,我会使用带有a的锚标记href="#something",但我已经使用hashchange事件和BBQ插件来加载此页面.
那么有没有其他方法,通过JavaScript,让页面转到页面上的给定元素?
这是我正在尝试做的基本概述:
function focusOnElement(element_id) {
$('#div_' + element_id).goTo(); // need to 'go to' this element
}
<div id="div_element1">
yadda yadda
</div>
<div id="div_element2">
blah blah
</div>
<span onclick="focusOnElement('element1');">Click here to go to element 1</span>
<span onclick="focusOnElement('element2');">Click here to go to element 2</span>
Run Code Online (Sandbox Code Playgroud) 我在Android Studio中创建项目时遇到问题.(版本1.5.1)
我一步一步地描述我的行为:
并且预览模式可能存在问题:
我收到这条消息:
Rendering Problems Exception raised during rendering: com.android.ide.common.rendering.api.LayoutlibCallback.getXmlFileParser(Ljava/lang/String;)Lorg/xmlpull/v1/XmlPullParser;
在堆栈跟踪中:
java.lang.NoSuchMethodError: com.android.ide.common.rendering.api.LayoutlibCallback.getXmlFileParser(Ljava/lang/String;)Lorg/xmlpull/v1/XmlPullParser;
at com.android.layoutlib.bridge.impl.ResourceHelper.getInternalComplexColor(ResourceHelper.java:146)
at com.android.layoutlib.bridge.impl.ResourceHelper.getColorStateList(ResourceHelper.java:231)
at android.content.res.BridgeTypedArray.getColorStateList(BridgeTypedArray.java:308)
at android.widget.TextView.<init>(TextView.java:776)
at android.widget.TextView.<init>(TextView.java:705)
at android.widget.TextView.<init>(TextView.java:701)
at com.android.layoutlib.bridge.MockView.<init>(MockView.java:50)
at com.android.layoutlib.bridge.MockView.<init>(MockView.java:45)
at com.android.layoutlib.bridge.MockView.<init>(MockView.java:41)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:163)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at com.android.layoutlib.bridge.bars.CustomBar.<init>(CustomBar.java:95)
at com.android.layoutlib.bridge.bars.StatusBar.<init>(StatusBar.java:67)
at com.android.layoutlib.bridge.impl.Layout.createStatusBar(Layout.java:222)
at com.android.layoutlib.bridge.impl.Layout.<init>(Layout.java:144)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:213)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:426)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:510)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:498)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:888)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:498)
at com.android.tools.idea.rendering.RenderTask.access$600(RenderTask.java:72)
at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:610)
at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:607)
at com.android.tools.idea.rendering.RenderService.runRenderAction(RenderService.java:362)
at …Run Code Online (Sandbox Code Playgroud) 好的,我有这个代码:
<select name="selector" id="selector">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
Run Code Online (Sandbox Code Playgroud)
而且我想获得所选项的价值.示例:选择"选项2",其值为"2".'2'是我需要得到的值而不是'选项2'.
我想知道以编程方式注册广播接收器的最佳实践/方法是什么.我想根据用户的选择注册特定的接收器.
由于注册是通过清单文件完成的,我想知道是否有一种正确的方法可以在代码中实现这一点.
android ×3
html ×2
java ×2
javascript ×2
jquery ×2
arrays ×1
css ×1
exception ×1
google-play ×1
html-select ×1
ios ×1
mysql ×1
pypy ×1
python ×1
try-catch ×1