Junior
Ինչպես ճիշտ նետել արտահայտություններ Java-ում?
sobes.tech AI
Պատասխան AI-ից
Ազատվածքները պետք է նետվեն, երբ տեղի է ունենում ոչստանդարտ իրավիճակ, որը խախտում է ծրագրի նորմալ կատարմանը և պահանջում է անհապաղ մշակում:
Հիմնական սկզբունքներ՝
- օգտագործեք ազատվածքները սխալների մասին հաղորդելու համար, ոչ թե ընթացքի հոսքի վերահսկման համար:
- ընտրեք ստանդարտ գրադարանի ամենահարմար ազատվածքի տիպը:
- ստեղծեք ձեր սեփական ազատվածքի դասեր, երբ ստանդարտները բավարար տեղեկատվություն չեն տալիս:
- ներառեք ազատվածքի հաղորդագրության մեջ մանրամասն տեղեկություններ սխալի պատճառի մասին, ներառյալ կոնտեքստը:
- մի բռնեք ազատվածքները, որոնց ճիշտ կերպով չեք կարող մշակել: ավելի լավ է, որ դրանք փոխանցեք վերև, կանչերի շղթայով:
- օգտագործեք
try-with-resourcesբլոկներ ռեսուրսների ավտոմատ փակման համար: - գրանցեք ազատվածքները, որոնց եք մշակել կամ փոխանցում վերև:
ճիշտ սինտաքսը՝ throw new MyException("Սխալի հաղորդագրություն");
Օրինակ՝
// սեփական ազատվածքի ստեղծում
public class InvalidParameterException extends Exception {
public InvalidParameterException(String message) {
super(message);
}
}
// մեթոդ, որը նետում է ազատվածք
public int divide(int a, int b) throws InvalidParameterException {
if (b == 0) {
throw new InvalidParameterException("Բաժանում զրոյով արգելվում է");
}
return a / b;
}
// մեթոդի օգտագործում և ազատվածքի մշակումը
public void performDivision(int x, int y) {
try {
int result = divide(x, y);
System.out.println("Արդյունք: " + result);
} catch (InvalidParameterException e) {
// սխալի գրանցում
System.err.println("Բաժանման սխալ: " + e.getMessage());
// հնարավոր է, լրացուցիչ մշակում կամ փոխանցում
}
}
Checked և Unchecked ազատվածքների տարբերությունները՝
| Տիպ | ժառանգություն | պահանջվում է մշակել/հայտարարել | Օրինակ |
|---|---|---|---|
| Checked | Exception (բացառությամբ RuntimeException) |
Այո (try-catch կամ throws) |
IOException, SQLException |
| Unchecked | RuntimeException |
Ոչ (կոմպիլյատորը չի պահանջում) | NullPointerException, ArrayIndexOutOfBoundsException |