社区
Android
帖子详情
Android io异常无法捕获怎么办
路伟
2017-02-20 09:44:53
java.io.IOException: ExceptionHost name may not be null。
使用httpclient联接网络,服务器地址可以自己填写,当格式天错误时,会出现这个异常,但是捕获不到,程序就会崩溃。
...全文
298
9
打赏
收藏
Android io异常无法捕获怎么办
java.io.IOException: ExceptionHost name may not be null。 使用httpclient联接网络,服务器地址可以自己填写,当格式天错误时,会出现这个异常,但是捕获不到,程序就会崩溃。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
路伟
2017-02-20
打赏
举报
回复
上面博客里这个正则表达式我复制到代码里怎么报错呢。 String check = @"((http|ftp|https)://)(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,4})*(/[a-zA-Z0-9\&%_\./-~-]*)?";
碼农李泽斌
2017-02-20
打赏
举报
回复
http://blog.csdn.net/weasleyqi/article/details/7912647
路伟
2017-02-20
打赏
举报
回复
域名那么多,怎么用正则表达式去验证啊?我也想过这个办法的。但是不知道怎么写这个正则表达式的。
碼农李泽斌
2017-02-20
打赏
举报
回复
client.execute(httpPost) 就是这句里面的参数httpPost这个错了啊,也就是你之前new HttpPost(srce)这里出问题了,那你在拼好srce这个字符串的时候,用正则匹配一下是否是一个正确的地址字符串,如果是继续执行,否则就提示用户重新输入
路伟
2017-02-20
打赏
举报
回复
转URL那个我是测试的。它是不用的。 HttpPost httpPost = new HttpPost(srce);参数用的不是url。 不是这行出的错。而是: HttpResponse response = client.execute(httpPost); 这行错的。这下面是logCat: 02-20 11:11:07.790: E/AndroidRuntime(23422): Process: com.vsd.mobilepatrol.vhdz, PID: 23422 02-20 11:11:07.790: E/AndroidRuntime(23422): java.lang.RuntimeException: An error occurred while executing doInBackground() 02-20 11:11:07.790: E/AndroidRuntime(23422): at android.os.AsyncTask$3.done(AsyncTask.java:309) 02-20 11:11:07.790: E/AndroidRuntime(23422): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 02-20 11:11:07.790: E/AndroidRuntime(23422): at java.util.concurrent.FutureTask.setException(FutureTask.java:223) 02-20 11:11:07.790: E/AndroidRuntime(23422): at java.util.concurrent.FutureTask.run(FutureTask.java:242) 02-20 11:11:07.790: E/AndroidRuntime(23422): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 02-20 11:11:07.790: E/AndroidRuntime(23422): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 02-20 11:11:07.790: E/AndroidRuntime(23422): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 02-20 11:11:07.790: E/AndroidRuntime(23422): at java.lang.Thread.run(Thread.java:818) 02-20 11:11:07.790: E/AndroidRuntime(23422): Caused by: java.lang.IllegalArgumentException: Host name may not be null 02-20 11:11:07.790: E/AndroidRuntime(23422): at org.apache.http.HttpHost.<init>(HttpHost.java:88) 02-20 11:11:07.790: E/AndroidRuntime(23422): at org.apache.http.impl.client.AbstractHttpClient.determineTarget(AbstractHttpClient.java:529) 02-20 11:11:07.790: E/AndroidRuntime(23422): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:519) 02-20 11:11:07.790: E/AndroidRuntime(23422): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:497) 02-20 11:11:07.790: E/AndroidRuntime(23422): at com.vsd.mobilepatrol.httpclient.Login.execute(Login.java:336) 02-20 11:11:07.790: E/AndroidRuntime(23422): at com.vsd.mobilepatrol.vhdz.LoginActivity$LoginAsyncTask.doInBackground(LoginActivity.java:816) 02-20 11:11:07.790: E/AndroidRuntime(23422): at com.vsd.mobilepatrol.vhdz.LoginActivity$LoginAsyncTask.doInBackground(LoginActivity.java:1) 02-20 11:11:07.790: E/AndroidRuntime(23422): at android.os.AsyncTask$2.call(AsyncTask.java:295) 02-20 11:11:07.790: E/AndroidRuntime(23422): at java.util.concurrent.FutureTask.run(FutureTask.java:237) 02-20 11:11:07.790: E/AndroidRuntime(23422): ... 4 more
碼农李泽斌
2017-02-20
打赏
举报
回复
HttpPost httpPost = new HttpPost(srce); 这一行的异常应该是。 你将srce转成URL对象,但是后面根本没用到啊,该try catch的地方没有啊
路伟
2017-02-20
打赏
举报
回复
我就是整个try catch 的。 代码如下。其中的app.HOST 就是界面上手动填写的地址。 请大神看一下。 HttpClient client = new DefaultHttpClient(); // 请求超时 client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15000); // 读取超时 client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 15000); app.login_name = user_name; app.login_password = user_password; String srce="http://" + app.HOST + ":" + DataDefine.WEB_SERVICE_PORT + "/DEVICE_USER_LOGIN"; try { URL url=new URL(srce); } catch (MalformedURLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } HttpPost httpPost = new HttpPost(srce); httpPost.addHeader("Content-Type", "application/json"); Log.i("Login ","params: " + parmas.toString() ); try { httpPost.setEntity (new StringEntity (parmas.toString(), "utf-8")); HttpResponse response = client.execute(httpPost); int code = response.getStatusLine().getStatusCode(); if (code >= 200 && code < 300) { String rev = EntityUtils.toString(response.getEntity()); try { JSONObject obj = new JSONObject(rev); service_error_code = obj.getInt("error_code"); if ( service_error_code ==0 ) { Log.i("Login ","rev: " + rev); System.out.println("service_code返回值是多少:"+service_error_code); api_user_id = obj.getInt("api_user_id"); device_uuid = obj.getString("device_uuid"); session_uuid = obj.getString("session_uuid"); ogp_user_name = obj.getString("user_name"); user_id = obj.getInt("user_id"); org_name = obj.getString("org_name"); org_id = obj.getInt("org_id"); ogp_base_url = obj.optString("ogp_base_url"); ogp_about_url = obj.optString("ogp_about_url"); service_groups = obj.optJSONArray("service_groups").toString(); service_categorys = obj.optJSONArray("service_categorys").toString(); use_camera =obj.getInt("use_camera"); use_sound=obj.getInt("use_sound"); qrcode=obj.getInt("qrcode"); maptype=obj.getInt("maptype"); role_id=obj.getInt("role_id"); offline_login=obj.getInt("offline_login"); gps_range=obj.getInt("gps_range"); open_gps=obj.getInt("open_gps"); sys_version=obj.getString("sys_version"); timezone=obj.getString("timezone"); utc=obj.getString("utc"); download_api=obj.getString("download_api"); photo_valid_time=obj.getInt("photo_valid_time"); photo_rate=obj.getInt("photo_rate"); auto_location=obj.getInt("auto_location"); auto_send=obj.getInt("auto_send"); min_updates=obj.getInt("min_updates"); Log.i("Login","base_url: " + ogp_base_url); Log.i("Login","about_url: " + ogp_about_url); Resources res = app.getResources(); Bitmap bm; bm = BitmapFactory.decodeResource (res, R.drawable.default_user_icon); user_icon64 = "data:image/png;base64," + AppTool.bitmapToBase64(bm); return true; } } catch (Exception e) { e.printStackTrace(); return false; } } } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
碼农李泽斌
2017-02-20
打赏
举报
回复
把整个try catch进去,怎么会捕获不到??
chinahbbt
2017-02-20
打赏
举报
回复
如果有异常,try catch肯定可以捕获得到 如果出现了异常却没有捕获,说明你出现异常的地方没有try catch,你可以debug调试下,看看有没有其他的异常,比如权限什么的
Android
applicat
io
n
捕获
崩溃
异常
怎么办
Android
applicat
io
n
捕获
崩溃
异常
怎么办? 通用 applicat
io
n 1、收集所有 avtivity 用于彻底退出应用 ... //
异常
捕获
protected boolean isNeedCaughtExept
io
n = true;// 是否
捕获
未知
异常
private Pendin
Android
开发使用UncaughtExcept
io
nHandler
捕获
全局
异常
下面让我们来看下如何使用UncaughtExcept
io
nHandler来
捕获
异常
。 首先实现创建一个类,实现UncaughtExcept
io
nHandler接口。代码如下: 代码如下:public class CrashHandler implements UncaughtExcept
io
nHandler {
Android
Stud
io
下载更新
Android
SDK网络
异常
或
无法
下载
Android
Stud
io
下载更新
Android
SDK网络
异常
或
无法
下载 今天重新安装了下
Android
... 您可能感兴趣的文章:
Android
跨进程抛
异常
的原理的实现
Android
7.0自动更新适配 包解析
异常
Android
编程实现项目中
异常
捕获
及对应Log
Android
代码-一个轻量级的AOP(
Android
)应用框架
支持自动
捕获
异常
的拦截切片@Safe,支持设置自定义
异常
处理者。 支持自定义拦截切片@Intercept,支持自定义切片拦截。 兼容Kotlin语法。 1、演示(请star支持) 2、如何使用 目前支持主流开发工具
Android
...
JAVA上百实例源码以及开源项目
此时此景,笔者只专注
Android
、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...
Android
80,357
社区成员
91,290
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章