java.lang.IllegalArgumentException: n must be positive

public static String  randomKey(){
		Random random = new Random();
		int key = random.nextInt(((int)System.currentTimeMillis()));
		return String.valueOf(key);
	}

  直接调用方法,发生异常:

Exception in thread "main" java.lang.IllegalArgumentException: n must be positive
    at java.util.Random.nextInt(Random.java:300)
    at com.stresstest.example.RandomTest.randomKey(RandomTest.java:24)
    at com.stresstest.example.RandomTest.main(RandomTest.java:15)

异常说明:

java.lang.IllegalArgumentException: n must be positive参数异常,n必须是一个整数,显然(int)System.currentTimeMillis()产生的值不是一个正数。

分析:  系统产生的异常,测试时系统正常,上线之后某一天之后产生了异常。查看System.currentTimeMillis()产生了问题,产生异常时间是2015-05-23当天开始往后,一直报错。之前就没事

时间:2015-05-23测试结果:正常
System.currentTimeMillis():1432350368523(int)System.currentTimeMillis():2126349176randomKey():1369912950
时间:2015-05-24测试结果:
1432436706512-2082194224
Exception in thread "main" java.lang.IllegalArgumentException: n must be positive
	at java.util.Random.nextInt(Random.java:300)
	at com.stresstest.example.RandomTest.randomKey(RandomTest.java:24)
	at com.stresstest.example.RandomTest.main(RandomTest.java:15)

  因此可以知道结果,阴性问题,值得注意,至于long型转换为int型出现问题在这里不做深究,有这个问题深层研究的请补充。

解决办法:

int key = random.nextInt(((int)System.currentTimeMillis()));修改为:  1.random.nextInt(((int)System.currentTimeMillis()/1000));  2.random.nextInt(999999999);
 
				
时间: 2024-08-19 06:23:49

java.lang.IllegalArgumentException: n must be positive的相关文章

Hive报错 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D

报错信息如下 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D 解决方法: 编辑 hive-site.xml 文件,添加下边的属性 <property> <name>system:java.io.tmpdir<

java.lang.IllegalArgumentException: Illegal character in query at index 261

在BaseFragment中使用了LoadingPage,而LoadingPage的联网加载使用的是AsyncHttpClient.一直报java.lang.IllegalArgumentException: Illegal character in query at index 261解析不成功,改成OkHttp解析即可. 网上有些方法,说先URLEncode再拼接,如果解决不了,换个联网请求方式,试一下.

解决Android studio 启动报错java.lang.RuntimeException: java.lang.IllegalArgumentException

报错内容 Internal error. Please report to https://code.google.com/p/android/issues java.lang.RuntimeException: java.lang.IllegalArgumentException: Argument for @NotNull parameter 'name' of com/android/tools/idea/welcome/Platform.<init> must not be null 

java.lang.IllegalArgumentException: Service not registered

java.lang.IllegalArgumentException: Service not registered 首先检查一下,Service是否在AndroidManifest文件中注册.格式如下: <service   android:name=".MyService"  ></service> 如果Service已经注册了,还是会报这个错误的话,可能是 1.bindService没有成功,就直接unbindService: 2.也可能是已经unbind

java.lang.IllegalArgumentException: XXX is ambiguous in Mapped Statements collection

问题的出现: 在后台添加一个新栏目的时候,照着程序已有原来的代码添加新的功能时,文件没有错误.点击新的栏目的时候报了java.lang.IllegalArgumentException: selectPageByExample is ambiguous in Mapped Statements collection (try using the full name including the namespace, or rename one of the entries). 解决: 在网上查找了

java.lang.IllegalArgumentException: Document base E:\Eclipse\workspace\.metadata\.plugins\org.eclips

1.错误描述 四月 13, 2015 5:56:55 下午 org.apache.catalina.core.AprLifecycleListener init 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Java\jdk1.7.0_67\bi

spring整合mybatis遇到的bug java.lang.IllegalArgumentException: Property &#39;sqlSessionFactory&#39; or &#39;sqlSessionTemplate&#39; are required

出bug的原因:mybatis-spring版本问题. 查看SqlSessionDaoSupport源码 1.2以上的版本: 1.1.1版本: 解决方法:1.2版本移除了@Autowired的注解,所以如果是1.2版本以上,要在BaseDaoImpl里面手动 注入SetSessionTemplate或者SetSessionFactory spring整合mybatis遇到的bug java.lang.IllegalArgumentException: Property 'sqlSessionFa

BottomSheetBehavior 之 java.lang.IllegalArgumentException: The view is not associated with BottomSheetBehavior

09-14 22:52:58.891 13674-13674/me.chunsheng.uberdriver E/AndroidRuntime: FATAL EXCEPTION: main Process: me.chunsheng.uberdriver, PID: 13674 java.lang.RuntimeException: Unable to start activity ComponentInfo{me.chunsheng.uberdriver/me.chunsheng.uberdr

关于SimpleCursorAdapter在sqlite数据库中取数据报错 : java.lang.IllegalArgumentException: column &#39;_id&#39; does not exist

_id列不存在 需要创建一个 id列 因为SQLlite数据库 的onCreate方法是在数据库不存在的时候才调用所以我们需要清除一下这个app 的数据 将数据清空 关于SimpleCursorAdapter在sqlite数据库中取数据报错 : java.lang.IllegalArgumentException: column '_id' does not exist