En Java, ya hemos definido clases de excepción como ArithmeticException, NullPointerException, etc. Estas excepciones ya están configuradas para activarse en condiciones predefinidas, como cuando divide un número por cero, activa ArithmeticException.
En Java, podemos crear nuestra propia clase de excepción y lanzar esa excepción usando la palabra clave throw. Estas excepciones se conocen como excepciones personalizadas o definidas por el usuario .
Declaración del problema: Realice una array de clase Java para representar arrays bidimensionales de números reales. La clase debe exportar los siguientes métodos:
- Matrix(int n, int m): Constructor que crea una array de tamaño nxm, con todos los valores inicialmente establecidos en 0;
- Producto de array(Array m): Devuelve la array que es producto del objeto y de m, si las dos arrays tienen dimensiones compatibles, y nula en caso contrario; ExcepciónWrongMatrixDimension que se lanza en el método check() si la dimensión de la array es incorrecta para la multiplicación de la array.
Ejemplo:
Java
// Java program to create user defined // exceptions import java.util.Scanner; // User defined exception class to store the exception // message class ExceptionWrongMatrixDimension extends Exception { public ExceptionWrongMatrixDimension(String str) { // stores the exception message to be displayed super(str); } } class twoDimensionalMatrix { void Matrix(int n, int m) throws ExceptionWrongMatrixDimension { // initialize matrix to be processed int[][] matrix = { { 1, 2 }, { 4, 5, } }; System.out.println("\nMatrix is :"); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { System.out.print(matrix[i][j] + " "); } System.out.println(); } int rows = 2; int cols = 2; if (n != rows) { // throw keyword for an exception in a method throw new ExceptionWrongMatrixDimension( "Invalid matrix dimensions to multiply"); } else { int[][] m_matrix = { { 6, 3 }, { 9, 2, } }; System.out.println("\nMatrix to multiply is :"); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { System.out.print(m_matrix[i][j] + " "); } System.out.println(); } System.out.println("\nMatrix to multiply is :"); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { System.out.print(m_matrix[i][j] + " "); } System.out.println(); } int c[][] = new int[m][n]; for (int i = 0; i < rows; i++) { for (int j = 0; j < rows; j++) { c[i][j] = 0; for (int k = 0; k < rows; k++) { c[i][j] += matrix[i][j] * m_matrix[k][j]; } } } System.out.println( "\n\nMatrix after multiplication is"); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { // prints the third matrix containing // the multiplied values System.out.print(c[i][j] + " "); } System.out.println(); } } } } public class Main { public static void main(String args[]) { twoDimensionalMatrix matrix = new twoDimensionalMatrix(); try { // block of code to be tested for errors while // it is being executed. System.out.println("Enter the number of rows"); int n = 2; System.out.println( "Enter the number of columns"); int m = 2; matrix.Matrix(n, m); } catch (ExceptionWrongMatrixDimension e) { // block of code to be executed, if an error // occurs in the try block. System.out.println( "ExceptionWrongMatrixDimension:"); // returns a method object. The name parameter // is passed as a string. System.out.println(e.getMessage()); } } }
Enter the number of rows Enter the number of columns Matrix is : 1 2 4 5 Matrix to multiply is : 6 3 9 2 Matrix to multiply is : 6 3 9 2 Matrix after multiplication is 15 10 60 25
Publicación traducida automáticamente
Artículo escrito por snehaveerakumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA