Bazaprogram.ru

Новости из мира ПК
4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Wrong data type java lang illegalargumentexception

Встроенные исключения в Java с примерами

Встроенные исключения — это исключения, доступные в библиотеках Java. Эти исключения подходят для объяснения определенных ошибок. Ниже приведен список важных встроенных исключений в Java.
Примеры встроенных исключений:

    Арифметическое исключение: оно генерируется, когда в арифметической операции возникло исключительное условие.

// Java-программа для демонстрации
// ArithmeticException

public static void main(String args[])

int a = 30 , b = 0 ;

int c = a / b; // нельзя делить на ноль

System.out.println( «Result = » + c);

catch (ArithmeticException e) <

System.out.println( «Can’t divide a number by 0» );

Выход:

ArrayIndexOutOfBounds Исключение: выдается для указания на доступ к массиву с недопустимым индексом. Индекс либо отрицательный, либо больше или равен размеру массива.

// Java-программа для демонстрации
// ArrayIndexOutOfBoundException

public static void main(String args[])

int a[] = new int [ 5 ];

a[ 6 ] = 9 ; // доступ к 7-му элементу в массиве

catch (ArrayIndexOutOfBoundsException e) <

System.out.println( «Array Index is Out Of Bounds» );

Выход:

ClassNotFoundException: это исключение возникает, когда мы пытаемся получить доступ к классу, определение которого не найдено.

// Java-программа для иллюстрации
// концепция ClassNotFoundException

public static void main(String[] args)

Object o = class .forName(args[ 0 ]).newInstance();

System.out.println( «Class created for» + o.getClass().getName());

Выход:

FileNotFoundException: это исключение возникает, когда файл недоступен или не открывается.

// Java-программа для демонстрации
// FileNotFoundException

public static void main(String args[])

// Следующий файл не существует

File file = new File( «E:// file.txt» );

FileReader fr = new FileReader(file);

catch (FileNotFoundException e) <

System.out.println( «File does not exist» );

Выход:

IOException: это бросается, когда операция ввода-вывода потерпела неудачу или прервалась

// Java-программа для иллюстрации IOException

public static void main(String args[])

FileInputStream f = null ;

f = new FileInputStream( «abc.txt» );

while ((i = f.read()) != — 1 ) <

System.out.print(( char )i);

Выход:

InterruptedException: он генерируется, когда поток ожидает, спит или выполняет некоторую обработку, и прерывается.

// Java-программа для иллюстрации
// InterruptedException

public static void main(String args[])

Thread t = new Thread();

Выход:

NoSuchMethodException: t выбрасывается при доступе к методу, который не найден.

// Java-программа для иллюстрации
// NoSuchMethodException

i = Class.forName( «java.lang.String» );

catch (SecurityException e) <

catch (NoSuchMethodException e) <

catch (ClassNotFoundException e) <

public static void main(String[] args)

Выход:

NullPointerException: это исключение возникает при обращении к членам нулевого объекта. Null ничего не представляет

// Java-программа для демонстрации NullPointerException

public static void main(String args[])

String a = null ; // нулевое значение

catch (NullPointerException e) <

Выход:

NumberFormatException: это исключение возникает, когда метод не может преобразовать строку в числовой формат.

// Java-программа для демонстрации
// NumberFormatException

public static void main(String args[])

int num = Integer.parseInt( «akki» );

catch (NumberFormatException e) <

System.out.println( «Number format exception» );

Выход:

StringIndexOutOfBoundsException: он вызывается методами класса String, чтобы указать, что индекс либо отрицателен, чем размер строки.

// Java-программа для демонстрации
// StringIndexOutOfBoundsException

public static void main(String args[])

String a = «This is like chipping » ; // длина 22

char c = a.charAt( 24 ); // доступ к 25-му элементу

catch (StringIndexOutOfBoundsException e) <

Выход:

Некоторые другие важные исключения

    ClassCastException

// Java-программа для иллюстрации
// ClassCastException

public static void main(String[] args)

String s = new String( «Geeks» );

Object o = (Object)s;

Object o1 = new Object();

String s1 = (String)o1;

StackOverflowError

// Java-программа для иллюстрации
// StackOverflowError

public static void main(String[] args)

public static void m1()

public static void m2()

NoClassDefFoundError

// Java-программа для иллюстрации
// NoClassDefFoundError

Читать еще:  Java bigdecimal compareto

public static void main(String[] args)

System.out.println( «HELLO GEEKS» );

ExceptionInInitializerError
Код 1:

// Java-программа для иллюстрации
// ExceptionInInitializerError

static int x = 10 / 0 ;

public static void main(String[] args)

Код 2:

// Java-программа для иллюстрации
// ExceptionInInitializerError

public static void main(String[] args)

Объяснение: Вышеуказанное исключение возникает всякий раз, когда выполняется статическое присвоение переменной и статический блок, если возникает какое-либо исключение.

IllegalArgumentException

// Java-программа для иллюстрации
// IllegalArgumentException

public static void main(String[] args)

Thread t = new Thread();

Thread t1 = new Thread();

t.setPriority( 7 ); // Верный

t1.setPriority( 17 ); // Исключение

Объяснение: Исключение возникает явно либо программистом, либо разработчиком API, чтобы указать, что метод был вызван с недопустимым аргументом.

IllegalArgumentException

// Java-программа для иллюстрации
// IllegalStateException

public static void main(String[] args)

Thread t = new Thread();

Объяснение: Вышеуказанное исключение явно возникает либо программистом, либо разработчиком API, чтобы указать, что метод был вызван в неправильное время.

AssertionError

// Java-программа для иллюстрации
// AssertionError

public static void main(String[] args)

// Если х не больше или равно 10

// тогда мы получим исключение во время выполнения

Объяснение: Вышеуказанное исключение явно вызывается программистом или разработчиком API, чтобы указать, что утверждение assert не выполнено.

Эта статья предоставлена Бишал Кумар Дубей . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Java Exception Handling – IllegalArgumentException

Moving right along through our in-depth Java Exception Handling series, today we’ll be digging into java.lang.IllegalArgumentException. The IllegalArgumentException is intended to be used anytime a method is called with any argument(s) that is improper, for whatever reason.

We’ll spend the few minutes of this article exploring the IllegalArgumentException in greater detail by examining where it resides in the Java Exception Hierarchy. We’ll also show some simple example code that will illustrate how you might use IllegalArgumentExceptions in your own Java projects, so let’s get going!

The Technical Rundown

  • All Java errors implement the java.lang.Throwable interface, or are extended from another inherited class therein.
  • java.lang.Exception inherits from java.lang.Throwable .
  • java.lang.RuntimeException inherits from java.lang.Exception .
  • Finally, java.lang.IllegalArgumentException inherits from java.lang.RuntimeException .

When Should You Use It?

As previously mentioned, the IllegalArgumentException should be thrown when a value is provided to an argument that just doesn’t quite work within the business logic of the application, but isn’t strictly illegal from the perspective of the JVM. For example, here we have a method that accepts an String parameter called title :

If we attempt to call this method while passing a non-String value (such as an int ), as seen above, the compiler will catch the issue and prevent us from even executing the application. In this case, the compiler issues an error indicating that int cannot be converted to a String :

Therefore, the only time an IllegalArgumentException is raised is if the method in question was explicitly designed to throw such an error under certain circumstances — situations that the compiler cannot detect are problems, but the author of the code deems improper.

Читать еще:  Ошибка при запуске приложения 0хс0000022

To illustrate how to properly use an IllegalArgumentException , we have a bit of code. The full sample is provided below for easy copy/pasting, after which we’ll dig into the important bits and explore what’s going on:

Outside of our Book and Logging helper classes, all our logic takes place in two methods, Main.generateLibrary() and Main.generateLibraryInvalid() . We start with the working method of the pair:

Nothing too crazy going on here. We create a little library list of Books and output the count, along with the final book we’ve added at the end ( «Les Misérables» ). Pay special attention to the final page count argument that is passed for the final Book added to the list in these examples ( 1463 in the case of «Les Misérables» ). The output should be just as expected with no thrown exceptions:

The generateLibraryInvalid() method is similar in that we add two books, output the count, then output a third book. However, in this case the third addition is «In Search of Lost Time» by Marcel Proust , a notoriously lengthy book by any measure at around 4215 pages all told:

While that’s very little difference between the logic of these two methods, running this second one results in a thrown IllegalArgumentException , indicating that the page count of our last book exceeds the maximum allowed limit of 4000 :

Why is this exception thrown? The stack trace gives some indication, but the real reason is we made a small modification to the Book.setPageCount(Integer) method definition:

Maybe our publisher has a hard limit on the maximum page length we can produce, but for whatever reason, we’ve decided that the most pages a Book can contain is 4000 . To confirm this is the case, we ensure that setPageCount(Integer) throws an IllegalArgumentException anytime the passed pageCount argument exceeds that limit.

While this is a simple example, it should illustrate the kind of scenarios in which an IllegalArgumentException should be used and explicitly raised in your own code.

The Airbrake-Java library provides real-time error monitoring and automatic exception reporting for all your Java-based projects. Tight integration with Airbrake’s state of the art web dashboard ensures that Airbrake-Java gives you round-the-clock status updates on your application’s health and error rates. Airbrake-Java easily integrates with all the latest Java frameworks and platforms like Spring , Maven , log4j , Struts , Kotlin , Grails , Groovy , and many more. Plus, Airbrake-Java allows you to easily customize exception parameters and gives you full, configurable filter capabilities so you only gather the errors that matter most.

Check out all the amazing features Airbrake-Java has to offer and see for yourself why so many of the world’s best engineering teams are using Airbrake to revolutionize their exception handling practices!

Tech Notes

Be Curios , Be Ahead

java.lang.IllegalArgumentException: Wrong FS: expected: file:/// – Hadoop

Today while writing a java program to interact with the Hadoop File System(HDFS) I was getting the below mentioned exception (Wrong FS: expected: file:///).

Note : My hadoop cluster is running on Cloudera CDH 5.

Читать еще:  Выскакивает ошибка видеодрайвер перестал отвечать

i.e – Exception in thread “main” java.lang.IllegalArgumentException: Wrong FS: hdfs://ibc.techidiocy.com:8020/user/saurav/input.txt, expected: file:///

And below is the command that I was trying to execute in my local system to read a file from HDFS.

Here is the complete stack trace.

From the stack trace it was clear to me that somehow it is not initializing the Configuration object properly because of that my FileSystem is pointing to the local file system instead of hadoop file system (hdfs) and in majority of the cases it happened because it is not able to find out the config files core-site.xml and hdfs-site.xml.

Below is my java code where i was trying to add these two files as resources so that they can be picked while my configuration object is initialized.

My assumption was it will pick up these files from the HADOOP_CLASSPATH that was already set in my local file system. I tried multiple options to make it work , but somehow I was not able to make it work.

Finally I looked at the JavaDoc for the org.apache.hadoop.conf.Configuration and org.apache.hadoop.fs.FileSystem class , and interestingly I found 2 solutions to the above mentioned problem.

Solution 1 : I found this solution when I was looking at the java doc for the Configuration class where other overloaded versions of addResource() methods were present and one of them takes a Path object , that refers to the absolute location of the file on local file system. So , I gave a try to that and this time I was successfully able to read the file.
Below are the changes that I made to use the other overloaded version.

Observe the difference carefully in the 1st case I was passing the core-site.xml and hdfs-site.xml location as a String and in the 2nd case I am passing it as Path object that will look into the local file system using absolute path.

Solution 2 : I found this solution when I was looking at FileSystem class java doc , which provides you two different ways of creating a FileSystem instance , one of the way we have already seen above where we are passing the Configuration object to the static get method of the FileSystem class , in the other overloaded version it allows you to pass the URI of the underlying hdfs that you want to point using your file system instance.

With this solution you can get rid of adding resources to the Configuration object. Hence , after these changes my code looks like this.

I have tested both of these solutions and both of them worked fine in my case. Meanwhile I was looking into the 1st solution where I was trying to initialize the Configuration by reading the config files present in the /> .

Above presented solutions will also work in the case when you are getting the below mentioned exception and you are sure that file is present in your hdfs.

Reason : Your Configuration object is not initialized properly because of that it is trying to find this file in your local file system where it doesn’t exists because file “/user/saurav/input.txt” exists on HDFS.

Hope it will help someone beginner like me in Hadoop.

Cheers

Ссылка на основную публикацию
Adblock
detector