def METHOD_NAME(self, typ, *, fout=None, ignore_noncrit=False):
    """
    List catalogs in given database.
    Listing contains:
        #. Catalog key
        #. Cone search access URL
        #. Warning codes
        #. Warning descriptions
    Parameters
    ----------
    typ : str
        Any value in ``self.dbtypes``.
    fout : output stream
        Default is screen output.
    ignore_noncrit : bool
        Exclude warnings in
        ``astroquery.vo_conesearch.validator.conf.noncritical_warnings``.
        This is useful to see why a catalog failed validation.
    """
    if fout is None:  # pragma: no cover
        fout = sys.stdout
    assert typ in self.dbtypes
    str_list = []
    for cat in self.catkeys[typ]:
        cat_db = self.dbs[typ].get_catalog(cat)
        if ignore_noncrit:
            out_wt = _exclude_noncrit(cat_db['validate_warning_types'])
            out_ws = _exclude_noncrit(cat_db['validate_warnings'])
        else:
            out_wt = cat_db['validate_warning_types']
            out_ws = cat_db['validate_warnings']
        # Warning types contains None if some other Exception was thrown.
        # There should be only 1 occurrence for each warning type.
        # But will put in a loop anyway, just in case.
        while None in out_wt:  # pragma: no cover
            out_wt[out_wt.index(None)] = 'None'
        str_list += [cat, cat_db['url']]
        if len(out_wt) > 0:
            str_list.append(','.join(out_wt))
        if len(out_ws) > 0:
            str_list.append('\n'.join(out_ws))
        str_list[-1] += '\n'
    if len(str_list) > 0:
        fout.write('\n'.join(str_list))