运行程序时系统资源溢出是啥错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运行程序时系统资源溢出是啥错误相关的知识,希望对你有一定的参考价值。

什么状态下这样提示?说一下前因后果,否则请往下对照:

一、剪贴板占用了太多的内存:

实际上,剪贴板是内存中的一块临时区域,当你在程序中使用了“复制”或“剪切”命令后,Windows将把复制或剪切的内容及其格式等信息暂时存储在剪贴板上,以供“粘贴”使用。如果当前剪贴板中存放的是一幅图画,则剪贴板就占用了不少的内存。这时,请按下述步骤清除剪贴板中的内容,释放其占用的内存资源:

1.单击“开始”,指向“程序”或“所有程序”,指向“附件”,指向“系统工具”,然后单击“剪贴板查看程序”,打开“剪贴板查看程序”窗口。
2.在“编辑”菜单上,单击“删除”命令。
3.关闭“剪贴板查看程序”窗口。

为了与Microsoft Office程序提供的多重剪贴板相区分,上述所说的剪贴板,常被我们称为系统剪贴板。如果你正在使用Micros OftOffice程序,而且使用了其多重剪贴板功能,那么你应清空“Office剪贴板”上的项目,方法是:在“Office剪贴板”任务窗格(OfficeXP)或工具栏(Office2000)上,单击“全部清空”或“清空‘剪贴板’”。当清空“Office剪贴板”时,系统剪贴板也将同时被清空。

二、打开的程序太多:

如果同时打开的文档过多或者运行的程序过多,就没有足够的内存运行其他程序。这时,对于多文档界面(MDl)程序,如Word、Excel等,请关闭当前文档外的所有文档,并退出当前未使用的程序,然后或许你就能够继续执行因“内存不足”而被中断的任务。

三、重新启动计算机:

如果只退出程序,并不重新启动计算机,程序可能无法将内存资源归还给系统。请重新启动计算机以释放系统资源,然后再次运行程序或执行被中断的任务。

四、自动运行的程序太多:

如果在启动Windows时自动运行的程序太多,那么,即使重新启动计算机,也没足够的内存用来运行其它程序。

1.单击“开始”,然后单击“运行”。

2.在“打开”框中,键入“Msconfig”,单击“确定”按钮,打开“系统配置实用程序”窗口。

3.单击“常规”选项卡,选中“选择性启动”复选钮,清除“处理Win.ini文件”复选框和“加载启动组项目”复选框。

4.单击“确定”按钮,当系统提示重新启动计算机时,请单击“是”按钮。

重启动电脑后,如内存不足的问题已经解决,就可以将计算机配置为启动时不打开任何程序。

参考资料:【优化电脑·禁止随机启动项·加速开机】(用 谷歌 搜狗 搜索引擎找到此博文)
http://blog.sina.com.cn/s/blog_4a1faae60102dv3o.html
参考技术A 内存溢出? 系统崩溃?

Java异常(Exception)

Java异常:运行期出现的错误

1. Java异常是Java提供的用于处理程序中错误的一种机制;

2. 错误指的是程序运行期间发生的异常事件,如除零溢出、数组下标越界、读取的文件不存在....

3. Java程序的执行过程中如出现异常事件,会生成一个异常类对象,该异常对象封装了异常事件的信息并将其提交给Java运行时系统,此过程称之为抛出异常(throw exception);

4. 当Java运行时系统接收到异常对象后,会寻找能处理这一异常的代码,并把当前异常对象交给其处理,此过程称之为捕获异常(catch exception);

5. 异常的分类:J2SDK中定义了很多异常类,这些异常类对应了各种各样可能出现的异常事件,如下图

                     

         ① Error:称为错误(系统错误),你处理不了,由Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,程序对其不做处理.

         ② Exception:所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显示声明或捕获.

         ③RuntimeException:一类特殊的异常,如被0除、数组下标越界,其产生比较频繁,处理麻烦,如果显示的声明或捕获将会对程序可读性和运行的效率影响很大。因此由系                                         统自动检测并将他们交给缺省的异常处理程序(用户可不比对其处理).

6. try语句

    ① try{...} 语句指定了一段代码,该段代码就是一次捕获并处理例外的范围;

    ② 在执行过程中,该段代码可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句要分别对这些异常作相应的处理;

    ③ 如果没有例外产生,所有的catch代码都被忽略,不执行.

7. catch语句

    ① 在catch语句块中是对异常进行处理的代码,每个try语句可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象;

    ② 在catch中声明的异常对象(catch(someException e))封装了异常事件发生的信息,在Catch语句块中可以使用这个对象的一些方法获取这些信息.

    ③  getMessage()方法,用来得到有关异常事件的信息;

         printStackTrace()方法,用来跟踪异常事件发生时执行堆栈的内容;

               一般而言,printStackTrace()方法用得比较多,它包含了getMessage()方法的内容,跟踪异常:如果一段代码可能发生异常是由于另外一段代码异常引起的,则它会打            印两段代码的异常信息,以及出错位置.

8. finally语句

     ①  finally语句为异常处理提供了一个统一的出口,使得在控制流程转到程序的其它部分以前,能够对程序的状态做统一的管理;

     ②  无论try语句指定的程序块中是否抛出异常,finally所指定的代码都要被执行;

     ③  通常在finally语句中进行资源的清除工作,如:关闭打开的文件、删除临时文件、释放非内存资源;

9. 除了在测试之外,在你实际当中编程的时候,在main方法中抛出Exception是相当不好的编程习惯,应该写try,catch作相应的处理;

10. 在一个try语句块中,父类异常的捕获语句不可以写在子类异常的捕获的上面,否则会覆盖子类的异常;

11. 使用自定义异常:

      其中,自定义异常的步骤如下:

             ① 通过继承 java.lang.Exception类声明自己定义的异常;

             ② 在方法适当的位置,生成自定义异常的实例,并用 throw 语句抛出;

             ③ 在方法的声明部分用 throws 语句声明该方法可能抛出异常.

      如 Demo_3 所示.

12.  Demo

     Demo_1

import java.io.*;
public class TestEx {
	public static void main(String[] args){
		FileInputStream in = null;
		int b;
		try {
			in = new FileInputStream("myfile.txt");
			b = in.read();
			while(b != -1){
				System.err.println((char)b);
				b = in.read();
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally{
			try {
				in.close();
				System.out.println("hello");
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

     Demo_2

import java.io.*;
public class TestEx {
	void m(int i) throws ArithmeticException{
		if(i==0){
			throw new ArithmeticException("被除数为0"); 
		}
	}
	void f() throws FileNotFoundException, IOException {
		FileInputStream in = new FileInputStream("myfile.txt");
	    int b;
	    b = in.read();
	    while(b != -1){
	    	System.out.println((char)b);
	    	b = in.read();
	    }
	}
	void g() throws Exception {
		f();
	}
	public static void main(String[] args){
		try {
			new TestEx().g();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 Demo_3

class MyException extends Exception {
	private int id;
	public MyException(String message, int id) {
		super(message);
		this.id = id;
	}
	public int getId(){
		return id;
	}
}

public class TestEx {
	public void regist(int num) throws MyException{
		if(num<0){
			throw new MyException("人数为负值,不合理",3); //regist方法在这个地方抛出异常后,这个方法就不会继续往下执行了
		}
		System.out.println("登记人数: "+num);
	}
	public void manager(){
		try {
			regist(100);
//			regist(-1);
		} catch (MyException e) {
			System.out.println("登记失败,出错类型:"+e.getId());
			e.printStackTrace();
		}
		System.out.println("操作结束");
	}
	public static void main(String[] args){
		TestEx te = new TestEx();
		te.manager();
	}
}

 regist(100)的运行结果:登记人数: 100
                                  操作结束

 regist(-1)的运行结果:登记失败,出错类型: 3
                                操作结束
                                MyException: 人数为负值,不合理
                                        at TestEx.regist(TestEx.java:15)
                                        at TestEx.manager(TestEx.java:22)
                                        at TestEx.main(TestEx.java:31)

13.  异常与继承之间的关系

       在继承后,重写方法需要抛出与原来异常类型一致异常或不抛出异常.

class A{
	public void method() throws IOException{}
}
class B1 extends A{  // 错误
	public void method() throws FileNotFoudException{}
}
class B3 extends A{ // 正确
	public void method(){}
}
class B4 extends A{ // 错误
	public void method(){} throws IOException, MyException{}
}

 

     

以上是关于运行程序时系统资源溢出是啥错误的主要内容,如果未能解决你的问题,请参考以下文章

os是啥意思?

像vs平台的资源管理器和属性窗口是啥窗口怎么才能做到这种效果呢??

vue前端node内存溢出问题解决

java 多线程是啥?一个处理器怎么同时处理多个程序

谁知道电脑出现“系统资源不足,无法完成请求”是啥原因?

黑苹果虚拟机是啥