private List<Address> tryToReadAddresses() {
        List<Address> addressList = null;
        try {
            FileInputStream fileInputStream = getFileInputStream();
            ObjectInputStream objectInputStream = getObjectInputStream(fileInputStream);
            addressList = getAddressList(objectInputStream);
            objectInputStream.close();
            fileInputStream.close();
        } catch (FileNotFoundException e) {
            throw new AddressBookException("File cant been opened", e);
        } catch (IOException e) {
            throw new AddressBookException("File read or write problem occured", e);
        } catch (ClassCastException e) {
            throw new AddressBookException("Input file contains invalid data", e);
        } catch (ClassNotFoundException e) {
            throw new AddressBookException("Input file contains invalid data", e);
        }
        return addressList;
    }