JAVA 의 throws 와 throw 를 어떻게 구분 합 니까?
throws:하나의 방법 으로 발생 할 수 있 는 모든 이상 을 설명 하 는 데 사용 합 니 다.어떠한 처리 도 하지 않 고 이상 을 업로드 합 니 다.저 를 호출 하 는 사람 에 게 던 집 니 다.
throws 는 방법 뒤에 이상 을 성명 하 는데 사실은 자신 이 이상 에 대해 어떠한 처리 도 하고 싶 지 않 고 다른 사람 에 게 자신 이 발생 할 수 있 는 이상 을 알려 다른 사람 에 게 처리 하 는 것 이다.
주의:방법 명 뒤에 throws Exception 을 따라 가면 이 방법 에 있 는 문구 에 이상 이 생 길 수 있 음 을 증명 합 니 다.주의 가 가능 합 니 다!다른 곳 에서 이 방법 을 호출 할 때 도 이상 을 던 지 거나 try catch 로 처리 해 야 합 니 다.throws 는 단독으로 사용 할 수 있 습 니 다.
eg:(코드 예시 01)
public class Test {
public static void main(String[] args) throws Exception {
Test test = new Test();
/*** , 2
* 1、 ( )
* 2、 try catch test.compute()
*/
test.compute();
}
public void compute() throws Exception{
System.out.println(" ");
System.out.println("3/0 " +3/0);
}
}
eg:(코드 예시 02)
public class Test {
public static void main(String[] args){
Test test = new Test();
/*** , 2
* 1、
* 2、 try catch test.compute() ( )
*/
try {
test.compute();
} catch (Exception e) {
e.printStackTrace();
System.err.println(" 0");
}
}
public void compute() throws Exception{
System.out.println(" ");
System.out.println("3/0 " +3/0);
}
}
throw:이상 을 스스로 처리 하 는 것 입 니 다.두 가지 방법 이 있 습 니 다.자신 이 이상 try..catch 코드 블록 을 캡 처 하거나 이상(throws 이상)을 던 지 는 것 입 니 다.eg(코드 예시 01):
package Exception005.usuallyWrong.usuallyWrong01;
import java.util.Scanner;
/**
* 1: throws Exception, try-catch , if throw, , 2:
*/
public class ByoneselfThrow {
String name;
String sex;
int age;
public void byoneself(){
Scanner input=new Scanner(System.in);
System.out.println(" :");
name=input.next();
System.out.println(" :");
age=input.nextInt();
System.out.println(" :");
sex=input.next();
try{
if(" ".equals(sex)||" ".equals(sex)){
System.out.println(" "+name+", "+age+", "+sex);
}else{
throw new Exception(" / !");
}
}catch (Exception e){
e.printStackTrace();
}
}
}
class Test{
public static void main(String[] args) {
ByoneselfThrow center=new ByoneselfThrow();
center.byoneself();
}
}
eg(코드 예시 02):
package Exception005.usuallyWrong.usuallyWrong01;
import java.util.Scanner;
/**
* 1: throws Exception( ), if throw( ), try-catch ,
* 2:
*/
public class ByoneselfThrow {
String name;
String sex;
int age;
public void byoneself()throws Exception{
Scanner input=new Scanner(System.in);
System.out.println(" :");
name=input.next();
System.out.println(" :");
age=input.nextInt();
System.out.println(" :");
sex=input.next();
if(" ".equals(sex)||" ".equals(sex)){
System.out.println(" "+name+", "+age+", "+sex);
}else{
throw new Exception(" / !");
}
}
}
class Test{
public static void main(String[] args) {
ByoneselfThrow center=new ByoneselfThrow();
try {
center.byoneself();
} catch (Exception e) {
e.printStackTrace();
}
}
}
eg(코드 예시 03):
package com.xinkaipu.Exception;
public class TestThrow
{
public static void main(String[] args)
{
try
{
// throws ,
// , main
throwChecked(-3);
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
// Runtime ,
//
throwRuntime(3);
}
public static void throwChecked(int a)throws Exception
{
if (a > 0)
{
// Exception
// try , throws
throw new Exception("a 0, ");
}
}
public static void throwRuntime(int a)
{
if (a > 0)
{
// RuntimeException ,
// ,
throw new RuntimeException("a 0, ");
}
}
}
요약:throws 는 단독으로 사용 할 수 있 습 니 다.throw 는 안 됩 니 다.try catch 나 throws 를 조합 해 야 합 니 다.프로그램 이 throw exception 문 구 를 실행 하면 뒤의 문 구 는 더 이상 실행 되 지 않 습 니 다.
이상 은 JAVA 의 throws 와 throw 를 어떻게 구분 하 는 지 에 대한 상세 한 내용 입 니 다.JAVA 의 throws 와 throw 에 관 한 자 료 는 다른 관련 글 에 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JAVA 객체 작성 및 제거 방법정적 공장 방법 정적 공장 방법의 장점 를 반환할 수 있습니다. 정적 공장 방법의 단점 류 공유되거나 보호된 구조기를 포함하지 않으면 이불류화할 수 없음 여러 개의 구조기 파라미터를 만났을 때 구축기를 고려해야 한다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.