Catch Block Error Variable Might Not Have Been Initialized
Feb 28, 2015
I want to use a try catch block, but I am not sure how to fix this problem:
int a;
try{
a = Integer.parseInt(A.getText());
}
catch (Exception e){
Output1.setText("Error");
}
//do someting with a here
The purpose of the try-catch is to catch blank input.The problem with this is that underneath the try - catch I get an error saying that the variable might not have been initialized. I know why this happens. I know I could initialize the varaible before the try - catch, but there is no default or null I can set an int as. If I initialized it as 0, the blank input will no longer be catched.how to make this problem disappear?
I know what the error means but I don't think initializing the variable will make my code work as intended so I'm having a little dilemna here... here's the code and I'll highlight the part that is said to be not initialized:
Java Code:
import java.util.Scanner; public class ItemCost { public static void main (String []args){ int i=1,item=1,e=1, f=1, g=1; int items, d ; double gst, qst, subt, Tot = 1, PriceItems ;
[Code] ....
So I'm supposed to get the following output :
Java Code:
Please input the amount of items bought 2 Please input the price of the item 1 1 Please input the price of the item 2 2 Please input the rate of GST in % 20
Please input the rate of QST in % 18 mh_sh_highlight_all('java');
HOWEVER my program doesn't seem to add input of item 1, and 2 if I initialize subt= 0 initially. It'll only take the last value inputted in the loop. By the way, the increments are counters to count the amount of errors the user might input by accident ( or whatever). Some people have been pointing it out as useless but that's the only way I found it to work.
public class Test { private final int arg; private final Runnable runnable1 = new Runnable() { @Override public void run() { // No errors here, exactly as expected System.out.println("ARG: " + arg);
[Code] ....
The java compiler (version 1.8.0-b132) produces the following error when compiling this code:
"Error:(14, 46) java: variable arg might not have been initialized"
Actually, I do not expect the error here.
Both declarations 'runnable1' and 'runnable2' are essentially the same: these are just Runnable objects accessing value of the 'arg' field (which is initialized in the constructor).
The only difference between the declarations is that 'runnable1' - is an old-fashion instantiation of Runnable, whereas 'runnable2' - is an instantiation of Runnable via a lambda expression.
There is a method taken from a class with several try and catch blocks. If you think it is possible, add one more catch block to the code to catch all possible exceptions, otherwise say 'Not possible' with your reason.
In the following piece of code Iam confused as to where the InputMismatchException in the catch block is thrown on the first place? Is the InputMismatchException thrown automatically with declaring to throw the exception?
import java.util.*;
public class InputMismatchExceptionDemo { public static void main(String[] args) { Scanner input = new Scanner(System.in); boolean continueInput = true;
Is it a best practice to return from try block or place return statement after try-catch when we intend to return a value from a method(* Catch block is being also used to rethrow the exception)??
Regarding return statements within methods. So I have a method containing try and catch block (as required) and much like when you have an if else statement... I noted you have to return an object for both the try and catch blocks. Now in my case my method should return a List object.
The way I have tried to overcome this:
- I've initialised a List object to null as an attribute of the class I'm working in. - Therefore in the catch block would just simply return the null List object, where as the try block would return the non-empty List (which is what I want). - I then just test to see if the List != null, when the method is invoked... and that is that.
However the method always seems to return null (when it shouldn't).
So method invia call the method popolaScompiute, inside popolaScompiute there is an iteraction through some id and for some id can occur an error; what i want is the getting the value of id in the first method invia, using the block try/catch. Is there a way to accomplish this?
public class hello { /** * @param args */ public static void main(String[] args) { int s = new hello().h(); System.out.println(s); } public int h(){ try{ int g = 10/0;
[Code] .....
the output is 7. how the flow is working. i understand that there is a divide by zero exception after which the control goes to catch. what about the return statement in catch . why is it overridden by finally..........
I came across a code where the exceptions can be thrown from catch and finally block too. I never gave a thought on what scenarios that can be required. Some practical examples when/where it can be required to throw the exception from catch and finally blocks.
If I put the highlighted text in try/catch block it is throwing NullPointerException , if I am using command line arguments then also it is showing the same exception.
java 7 feature (Multicatch and final rethrow ).. how to print user defined message in catch block with respect to multiple exceptions in single catch block...
Ex: }catch (IOException | SQLException ex) { System.out.println("Exception thrown"); /** * i want like this, if IOException is thrown then System.out.println("File not Found"); * if SQLException is thrown then System.out.println("DataBase Error"); */ }
I am reading input from a file that has following information:
line 1 = numbers of integers in array, line 2 = elements in array1, line 3 = elements in array2.
These lines constitute a test case. There are 1000 test cases in the input file.
So basically, I read the length of arrays, populate the arrays by reading from the file.
The code is below ( I have not included reading input code):
while(test_case<1000){ if (count == 1){ //count keeps track of lines in input file vec_length = Integer.parseInt (tokenizer.nextToken()); count++; continue; } if (count == 2){ //populates array1 vector1 = new int[vec_length]; for (int i = 0; i < vector1.length; i++) vector1[i] = Integer.parseInt (tokenizer.nextToken()); count++; continue; }
Array2 is populated using the same as above code. However when I use the following code:
for (int i=0; i<vec_length; i++) temp += vector1[i]*vector2[i];
I get " local variable vector1 and vector2 have not been initialized error". But both arrays have been initialized in the if{} block. Is it because initialization was local to if block?
In the following code the print method prints the default value of int(zero) for the first time even when the variable i has been assigned a value of 4. Why?
class A1{ A1() { System.out.println("Inside constructor of A1()"); print(); } void print() { System.out.println("A");
[Code] ....
Output: Inside constructor of A1() 0 Inside constructor of B1() 4
I'm making a program that can read an input of English or Morse code and return an output of Morse code or English back. The English-->Morse works fine, but not Morse-->English. I'm pretty sure my solution lies in displaying the variable 'morseWord', but no matter where I put it, I always get an error saying the variable has not been initialized. Here's what it looks like now:
public class ThrowException { public static void main (String[] args) { var x=prompt("Enter a number between 0 and 10:",""); try { if (x>10){ throw "Err1"; } else if (x<0){ throw "Err2"; } else if (isNaN(x)){ throw "Err3"; } } catch(er){
[code]...
It's telling me where catch(er) is: <identifier> expected..I've watched videos, but no one seems to encounter this error....am I missing a segment of code?
One of my friend asked me that which will load first static variable or static block ? My answer was to static variable.. So he gave me two program and said to differentiate between them
1st program
public class Test { public static void main(String args[]) { System.out.println(Test.x); } static { System.out.println(Test.x);
[Code] ....
Output of this :
90 90
I tried to decompile the byte code and found it's same for both the above equation. How to differentiate between them. I am confused when the static variable will initialised.
I don't understand that the error occurs when I don't initialize the variable myPoint. Whereas, I initialize the variable myPoint after variable declaration and before place of error.
package enumeration; import java.util.Random; public class Craps {
[Code]....
When I initialize the variable myPoint to zero in its decleration, the error disappear. But why? I have already initialized the variable myPoint in default case before the line of error occured..
I am getting an error stating that 'word cannot be resolved to a variable' pointing to my return value. Why? Should I make a default String value for word before my while loop or something, like
String word = " "; ?
String getItRight(){//make sure the user enters the password correctly Scanner input = new Scanner(System.in); boolean repeating = true; while(repeating){
The error "cannot resolve to a variable". I get the error I just can't seem to fix the error.Presently I am working my way through the Oracle docs and that seems ok. Java for Dummies, Sams teach Yourself Java in 21 Days, plus my favorite Head First Java.
package tutorial; import java.util.*; public class HolidaySked { BitSet sked; public HolidaySked(){ sked = new BitSet (365); int [] holiday = {1,15,50,148,185,246,281, 316,326,359}; for (int i = 0; i<holiday.length; i++){ addHoliday(holiday[i]);
I'm getting this error, I definitely know that is my error trying to pass method/variable because when I commented received part of my code it ran and worked.
I get this error
at java.awt.EventDispatchThread.pumpEventsForHierarch y(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
I am trying to create this program I am pretty sure it is easy but I am making it difficult lol, it keeps giving me a error, it is saying cannot find symbol - variable keyboard, I don't think I have keyboard as a variable but I may be wrong.
double distancel = keyboard.nextdouble(); that is the specific line ....
import javax.swing.JOptionPane; import java.io.File; import java.util.Scanner; //import java.util.totalInches; //instance variables public class Map{ public static void main(String[] args){
My dynamic web project has a java class that captures a session variable with the following code.
HttpSession LoginSession = request.getSession(); String VAR = LoginSession.getAttribute("myVar").toString(); //This is the row 127
If i test the app in local (Mac + Java 1.8 + Tomcat 8) all works. In my remote cloud server (Ubuntu 14.10 + Java 1.8 + Tomcat 8) all works, except this class, that has this code. I copy the complete error here. Note that the row 127 of the error message is the second row of the previous code; and, if i comment this row with // and assign a fix variable all works. So, the problem is that 127^ row.
14-Dec-2014 08:15:23.923 SEVERE [http-nio-8080-exec-14] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [srvNavigation.SrvPT] in context with path [/myapp] threw exception java.lang.NullPointerException at srvNavigation.SrvPT.doGet(SrvPT.java:127) at javax.servlet.http.HttpServlet.service(HttpServlet.java:618) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)