发布网友 发布时间:2022-04-25 13:08
共4个回答
热心网友 时间:2024-08-13 06:50
首先:新建一个类,类名就是你要自定义的异常,继承Exception
比如:
public class MemmoryException extends Exception{//内寸异常
public MemmoryException(String message){
super(message);
}
}
接下来在程序里写个线程,线程内容是不停检测内存,用while(true)循环,一旦有存超出80%的Runtime.getRuntime().maxMemory,就new一个自定义异常,throw出来
热心网友 时间:2024-08-13 06:54
想监控内存?
Runtime runtime = Runtime.getRuntime();
// JVM可使用的最大内存
runtime.maxMemory();
// JVM当前命名用的内存
runtime.totalMemory();
// JVM从系统中拿到的还没有使用的内存
runtime.freeMemory();
用这些数值可以大致判断一下,这些都是指JVM的内存。不是系的。
热心网友 时间:2024-08-13 06:53
/**
* 调用的类和main方法
* @author Administrator
*
*/
package com.csuinfo.exception;
import java.util.Scanner;
public class ExceptionDemo
{
//自定义
public static void test5()throws Exception
{
Scanner input =new Scanner(System.in);
int a=input.nextInt();
if(a<0||a>150)
{
//人为产生异常
throw new AgeInvalidateException("年龄不合法");
}
}
public static void main(String[] args)
{
try {
test5();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.csuinfo.exception;
/**
* 年龄不合法的异常
*
* @author Administrator
*
*/
public class AgeInvalidateException extends Exception {
// 定义有参构造函数,exceptionMsg:异常的消息
public AgeInvalidateException(String exceptionMsg) {
super("逻辑错误: " + exceptionMsg);
}
}
热心网友 时间:2024-08-13 06:48
我试了一下,你可以在生成jasper以前做一个监控进程,当jvm的内存超出默认值以后在监控进程里做一个延时的转向,然后执行System.exit(0),这样就可以实现转向且停止生成的目的了。但是好像将子线程里的异常抛出效果不是很好